Auth :: login () не работает должным образом laravel 5.7 - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь настроить «Войти через Facebook» с помощью laravel socialite.Когда я пытаюсь войти в систему, он получает успешный обратный вызов от Facebook, я сохраняю данные, извлеченные в базу данных, и пытаюсь перенаправить на домашнюю страницу.При этом я перенаправлен обратно на страницу входа и никогда не попадаю на домашнюю страницу.

При отладке ошибки я обнаружил, что мой Auth :: login ($ user) не работает должным образом.

Вот код:

AuthController.php

use App\Http\Controllers\Controller;
use Laravel\Socialite\Two\InvalidStateException;
use Auth;
use Socialite;
use App\User;

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);
    // dd($authUser);
    if(Auth::login($authUser, true)){            // here is the error
      return redirect($this->redirectTo);
    }
    else{
      return 'Login not done';                 //this prints out to the screen
    }
}

public function findOrCreateUser($user, $provider)
 {
     $authUser = User::where('id', $user->id)->first();
     if ($authUser) {
         return $authUser;
     }
     return User::create([
         'name'     => $user->name,
         'email'    => $user->email,
         'avatar'    => $user->avatar,
         'password'    => bcrypt('password'),
         'provider' => $provider,
         'id' => $user->id
     ]);
 }

Дайте мне знать, что я делаю неправильно.

Это то, что яполучаю пока dd ($ authUser)

enter image description here

1 Ответ

0 голосов
/ 31 декабря 2018

Вы должны использовать функцию auth()->login($user); после создания пользователя, чтобы добавить пользователя в auth

...