Auth::login() 无法正常工作 laravel 5.7

Ujj*_*rma 5 php authentication laravel laravel-5 laravel-socialite

我正在尝试使用 laravel socialite 设置“使用 facebook 登录”。当我尝试登录时,它从 Facebook 获得成功回调,我将获取的数据存储到数据库中并尝试重定向到主页。这样做时,我被重定向回登录页面并且从未到达主页。

在调试错误时,我发现我的 Auth::login($user) 工作不正常。

这是代码-

验证控制器.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
     ]);
 }
Run Code Online (Sandbox Code Playgroud)

让我知道我做错了什么。

这就是我在 dd($authUser) 时得到的

在此处输入图片说明

小智 -2

您应该在创建用户后使用auth()->login($user);函数将用户添加到身份验证

  • 不正确。`Auth::login($user)` 和 `auth()->login($user);` 都是正确的。 (3认同)