gpt4 book ai didi

php - Laravel 5.3 从第二次开始记录一个新的 Facebook 用户

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:15 24 4
gpt4 key购买 nike

我正在使用 socialite 将登录与 Facebook 功能集成。这是我的代码:

public function handleProviderCallback()
{

try {
$socialUser = Socialite::driver('facebook')->user();
} catch (\Exception $e) {
return redirect('/dashboard');
}


/*section1 : i check if the user exists in the db, and if no then
I save this user in the db */

$user = User::where('facebook_id', $socialUser->getId())->first();
if (!$user) {
User::create([
'facebook_id' => $socialUser->getId(),
'name' => $socialUser->getName(),
'email' => $socialUser->getEmail(),
]);

Auth::loginUsingId($socialUser->id);
return redirect()->intended('/dashboard');
}

/* end of section one */


else{
if(Auth::loginUsingId($user->id)){
return redirect()->intended('/dashboard');
}
}


}

问题是:我用一个新用户登录,数据被添加到数据库,我被重定向到仪表板,但我没有登录。在我再次尝试登录后(当用户已经存在于数据库)我已成功登录。为什么?谢谢!

最佳答案

问题出在下一行。您必须传递数据库中的用户 ID,而不是 Facebook ID。

Auth::loginUsingId($socialUser->id);

更新如下

$newUser = User::create(...);
Auth::loginUsingId($newUser->id);

关于php - Laravel 5.3 从第二次开始记录一个新的 Facebook 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41527359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com