Laravel Socialite 2.0 Facebook 认证只返回 id 和 name
Laravel Socialite 2.0 Facebook Authentication only returning id and name
我正在使用 Laravel 的 Socialite 软件包(2.0.0 版)。它对 google 和 github 非常有用,但是当我尝试使用 facebook 登录时,我得到了这个:
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
参数。我只得到 id 和经过身份验证的 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',
]);
}
可能是什么问题?请帮助我。
我也遇到了同样的问题,是bug!使用新版本的文件 FacebookProvider.php here 并开始工作!
我更新到最新版本的 Socialite。现在可以使用了!
对于那些对如何更新到最新版本感到困惑的人
将其添加到您的 composer.json 文件中。
"laravel/socialite": "2.*"
并进入您的终端 composer update
干杯!
我正在使用 Laravel 的 Socialite 软件包(2.0.0 版)。它对 google 和 github 非常有用,但是当我尝试使用 facebook 登录时,我得到了这个:
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
参数。我只得到 id 和经过身份验证的 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',
]);
}
可能是什么问题?请帮助我。
我也遇到了同样的问题,是bug!使用新版本的文件 FacebookProvider.php here 并开始工作!
我更新到最新版本的 Socialite。现在可以使用了!
对于那些对如何更新到最新版本感到困惑的人 将其添加到您的 composer.json 文件中。
"laravel/socialite": "2.*"
并进入您的终端 composer update
干杯!