我已经使用 Laravel 5.4 和 socialite 3.0 在我的 Web 应用程序上进行社交登录。但是现在我收到一个错误Legacy People API has not been used in project xxx。然后我对socialite package的一个核心文件做了一些修改。/vendor/laravel/socialite/src/Two/GoogleProvider.php 第 61 行:替换https://www.googleapis.com/plus/v1/people/me?通过https://www.googleapis.com/oauth2/v3/userinfo?
并使用以下代码更新 mapUserToObject 函数:
protected function mapUserToObject(array $user)
{
$user['id'] = Arr::get($user, 'sub');
$user['verified_email'] = Arr::get($user, 'email_verified');
$user['link'] = Arr::get($user, 'profile');
return (new User)->setRaw($user)->map([
'id' => Arr::get($user, 'sub'),
'nickname' => Arr::get($user, 'nickname'),
'name' => Arr::get($user, 'name'),
'email' => Arr::get($user, 'email'),
'avatar' => $avatarUrl = Arr::get($user, 'picture'),
'avatar_original' => $avatarUrl,
]);
}
Run Code Online (Sandbox Code Playgroud)