我正在使用Laravel Socialite通过外部网站注册用户。这很好用,但我很困惑,确保用户每次访问我的网站时都能通过身份验证。
通常,用户将使用用户名/电子邮件地址和密码进行注册。然后,我们根据输入的凭据检查数据库并记录该用户。但是通过外部网站进行身份验证,我无法访问该用户的密码,只能访问其他可用的凭据(即从第三方网站获得的电子邮件地址) )。
因此,如果他们通过外部网站注册/登录,一旦用户被重定向回我的网站,我应该像这样进行身份验证吗?这是我感到困惑的地方,因为通常我会包含第二个键/值对,这是用户的密码。
if (Auth::attempt(['email' => $user['email']))
{
return redirect()->route('route');
}
更新:
这种简单的Laravel身份验证不应该足够吗?我用来登录的第三方网站处理身份验证工作负载。我似乎只需要通过Laravel进行身份验证即可为当前用户使用Auth外观。
答案 0 :(得分:0)
The way I solved this was simple. The 3rd party website handles their authentication and once the user is redirected back to my website, they're good to go. So, I just push a session cookie to them and they're all set.
Auth::login($user, true);