0

我将社交身份验证的用户详细信息存储到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 密码存储在我们的应用程序数据库中。在这种情况下,密码将为 NULL。

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

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

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

4

1 回答 1

1

说明你没有仔细了解api的生命周期。将用户重定向到 facebook 页面,让他们接受您的申请并登录。在 facebook 将提供用户的详细信息并存储他们 fb_id、电子邮件、电话等然后创建它们之后。下次他们登录时,请确保 fb_id 与用户登录返回的匹配。所以注册后删除用户是没有意义的。

于 2016-12-05T11:04:45.253 回答