使用Laravel Auth进行社会认证的用户



我将社交身份验证的用户详细信息存储到User(正态)模型,并登录用户。这样我就可以使用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('/');
}

但是,然后我意识到,如果不需要密码验证,则任何人都可以使用内置的登录名,正常登录表单登录,因为我们在应用程序数据库中列入了Facebook密码。在这种情况下,密码将无效。

我想在用户注销后删除用户详细信息。

public function logout()
{ 
    User::find(Auth::user()->id)->delete();
    Auth::logout();
    return redirect('/')->with('message','logged out!');
}

这看起来不太好。什么是使社会认证的用户使用Auth的正确或更好的方法?

这意味着您不仔细理解API的生命周期。将用户重定向到Facebook页面,让他们接受您的应用程序并登录。Facebook将提供用户的详细信息并将其存储FB_ID,电子邮件,电话等,然后创建它们。下次登录时,请确保FB_ID与从用户登录的返回的匹配。因此,注册后删除用户没有任何意义。

最新更新