0
我将社交认证的用户详细信息存储到User
(可认证)模型,并登录该用户。这样我就可以使用Auth
的功能。使用laravel进行社交认证的用户Auth
回调函数:
public function callback()
{
$user = Socialite::driver('facebook')->user();
$newUser=new User();
$newUser->name=$user->name;
$newUser->email=$user->email;
$newUser->remember_token=$user->token;
$newUser->save();
Auth::login($newUser, true);
return redirect('/');
}
但我随后发现任何人,因为我们在我们的应用程序数据库DONOT商店的Facebook密码可以只用内置的登录,正常的登录表单用户名登录,如果不需要密码验证。在这种情况下密码将为NULL。
我想在用户注销后删除用户的详细信息。
public function logout()
{
User::find(Auth::user()->id)->delete();
Auth::logout();
return redirect('/')->with('message','logged out!');
}
这看起来不太好。什么是使社交认证用户使用Auth
的正确或更好的方法?
如果不需要任何密码验证,就不能使用内置登录的用户名登录,因为我们不会将facebook的密码存储到'user'模型中? –
是的,我们从Facebook的身份证登录,因为Facebook只在登录后提供身份证,所以我们可以肯定,我们正在生成的身份证是从登录的用户,所以不需要passwor这就是为什么你正在创建社交身份验证登录不是吗?如果它需要密码为每个登录为什么使用社交认证它将是无用的呐? –
我的意思是经过Facebook认证后,我们在'User'模型中存储了fb id,名称,用户名,但没有密码。那么不能有任何人登录只有用户名内置登录不是从Facebook? –