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用户的电子邮件。我至少需要用户的nameemail

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。现在它工作了!

我有同样的问题,是一个错误!使用新版本的文件FacebookProvider.php here并且工作!

对于谁如何更新到最新版本只是 添加到您的composer.json文件。

"laravel/socialite": "2.*" 

和你的终端作曲家更新

干杯!