laravel - 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()]);
}
解决方案
你需要应用中间件才能工作Auth::user()
Route::get('/test_login', [\App\Http\Controllers\UserController::class, 'getUser'])->middleware('auth');
然后尝试
推荐阅读
- java - 来自按钮的 JavaFX 输入
- r - 在 dplyr::summarize_at 中使用 tidyeval 时出现“参数“e2”缺失且没有默认值”错误
- mysql - 尝试编写一个查询来获取最高和最低收入并打印帐户健康状况?
- google-cloud-platform - Cloud Bigtable 似乎没有删除应该被垃圾收集的数据
- python - 使用 python 构建每个区域中的 EC2 实例列表
- php - 将变量从循环传递到函数
- java - Java - 检索文件,计算,输出到另一个文件?
- python - 在服务器上安装包但得到 SyntaxError
- django - mod_wsgi:ImportError:没有名为“encodings”的模块正在部署 django 应用程序
- c - C如何使用esc退出while循环