我使用 laravel 5.6 和 laravel/socialite: "^3.2.0"用于 Facebook 的身份验证,但是登录到 facebook 时用户电子邮件为空(用户 facebook 帐户有电子邮件)
我的授权代码:
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
dd($user);
$authUser = $this->findOrCreateUser($user, $provider);
Auth::login($authUser, true);
return redirect($this->redirectTo);
}
public function findOrCreateUser($user, $provider)
{
$authUser = User::where('provider_id', $user->id)->first();
if ($authUser) {
return $authUser;
}
return User::create([
'name' => $user->name,
'email' => $user->email,
'provider' => $provider,
'provider_id' => $user->id
]);
}
[1]: /image/6zYEI.png
最佳答案
是的,您的代码没有错误。要解决此问题,您还需要启用一些其他功能。
您必须将电子邮件权限从“标准访问权限”更改为“高级访问权限”。
要启用此权限,您需要在下面的网址中输入
https://developers.facebook.com/apps/<app-id>/app-review/permissions/
更改权限后,您将开始接收负载中的电子邮件。
关于php - laravel 5.6 facebook 电子邮件的社交名流身份验证为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54306350/