Laravel Socialite 2.0 Facebook身份验证仅返回id和名称
问题描述:
我正在使用Laravel的Socialite程序包(2.0.0版)。这是伟大的工作对谷歌和github上,但是当我试图与Facebook登录,我得到这个:Laravel Socialite 2.0 Facebook身份验证仅返回id和名称
ErrorException in FacebookProvider.php line 89:
Undefined index: first_name
在FacebookProvider.php
错误是从这个方法:
protected function mapUserToObject(array $user)
{
return (new User)->setRaw($user)->map([
'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $this->graphUrl.'/'.$this->version.'/'.$user['id'].'/picture?type=normal',
]);
}
如果我dd()
的$user
在映射之前参数。我只获得身份证和Facebook用户的身份。所以,这意味着我没有收到Facebook用户的电子邮件。我至少需要用户的name
和email
。
dd()
此方法后看起来是这样的:
protected function mapUserToObject(array $user)
{
dd($user);
return (new User)->setRaw($user)->map([
'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $this->graphUrl.'/'.$this->version.'/'.$user['id'].'/picture?type=normal',
]);
}
可能是什么问题呢?请帮帮我。
答
我更新到最新版本的Socialite。现在它工作了!
答
对于谁如何更新到最新版本只是 添加到您的composer.json文件。
"laravel/socialite": "2.*"
和你的终端作曲家更新
干杯!