我正在使用Laravel Socialite进行谷歌登录所有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();
}
'provider_id'
必须是protected $fillable
模型上的SocialProvider
数组,如果你想将它在数组中传递给SocialProvider->create(...)
。