首页 > 解决方案 > Laravel 身份验证返回 null

问题描述

我正在使用 2 条路由,一条用于 loginUsingId(1),第二条用于测试用户是否已登录。当尝试查看 Auth::id() 时,它永远为空。

//My Routes
    Route::get('/login', [\App\Http\Controllers\UserController::class,'login']);

    Route::get('/test_login', [\App\Http\Controllers\UserController::class, 'getUser']);

这是 UserController 命名空间 App\Http\Controllers 中的方法;

use App\Http\Middleware\Authenticate;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

    public function login()
    {
        $auth = Auth::loginUsingId(3);
        return var_dump($auth); // <--- here return 3
    }


    public function getUser()
    {
        return response(['user'=>Auth::id()]);
    }

标签: laravelauthentication

解决方案


你需要应用中间件才能工作Auth::user()

Route::get('/test_login', [\App\Http\Controllers\UserController::class, 'getUser'])->middleware('auth');

然后尝试


推荐阅读