通过电子邮件发送的laravel 5.6 socialite auth为null

时间:2019-01-22 10:36:20

标签: 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]: https://i.stack.imgur.com/6zYEI.png

1 个答案:

答案 0 :(得分:1)

您的代码没有错误。


Facebook用户使用手机号码而不是电子邮件地址进行注册。这意味着Facebook没有该特定用户的电子邮件地址。因此,这会给您 NULL

请在(Email)部分下进行检查