laravel 5.6 светская авторизация через фейсбук - PullRequest
0 голосов
/ 22 января 2019

Я использую 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 голосов
/ 22 января 2019

В вашем коде нет ошибок.


Пользователи Facebook регистрируются, используя Номер мобильного телефона вместо адреса электронной почты.Это означает, что у Facebook нет адреса электронной почты для этого конкретного пользователя.Так что это вернет вам NULL

Пожалуйста, отметьте это в разделе ( Email )

...