php - laravel 5.6 facebook 电子邮件的社交名流身份验证为空

标签 php laravel laravel-socialite

我使用 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/

相关文章:

php - 如何在SQL中获取结果group by

php - 为什么where子句不影响查询?

php - Laravel Socialite token 刷新

php - 如何使用 services.php laravel 配置文件中的函数

php - Mysql和php数据库按MONTH分离

php - 使用 PHP 动态更改 arduino yun 上的 httpd SSH 端口

laravel - PHP fatal error : Class 'App\\User' not found in/home/e/eraser/domains/domain. com/app/Http/Controllers/Auth/RegisterController.php 第 100 行

php - 动态 Laravel 社会名流配置

javascript - file_get_contents ('php://input' )为一个用户返回空,但对其他人工作正常

php - 2结账退款问题