我正在使用Laravel Socialite进行Google登录,所有scoialite函数都可以正常工作,并且数据正在添加到数据库(phpmyadmin)中,provider_id除外,该函数的getId()也可以正常工作,但未插入数据db。
public function handleProviderCallback()
{
try{
$socialUser = Socialite::driver('google')->user();
}catch(Exception $e){
redirect('/');
}
$socialProvider = SocialProvider::where('provider_id', $socialUser->getId())->first();
if(!$socialProvider){
//create new user
$user = User::firstOrCreate(
['email' => $socialUser->getEmail()],
['name' => $socialUser->getName()]
);
$user->socialProviders()->create(
['provider_id' => $socialUser->getId() , 'provider' => 'google']
);
}
else{
$user = $socialProvider->user;
}
auth()->login($user);
return redirect('/home');
//return $socialUser->getId();
}
答案 0 :(得分:0)
'provider_id'
必须是protected $fillable
模型上的SocialProvider
数组,如果您想将其在数组中传递给SocialProvider->create(...)
。