You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中Auth获取用户ID失败问题求助

解决Laravel 9中Auth::user()无法获取用户信息的问题

1. 修正Auth类的导入路径

你的代码导入的是控制器目录下的Auth类,而非Laravel官方的Auth门面,这是核心问题:
原导入代码:

use App\Http\Controllers\Auth;

替换为:

use Illuminate\Support\Facades\Auth;

2. 给路由添加认证中间件

确保只有登录用户能访问insert方法,在路由文件(如routes/web.php)中为对应路由加上auth中间件:

Route::post('/jobs/insert', [JobController::class, 'insert'])->middleware('auth');

如果有多个需要认证的路由,也可以用路由组统一处理:

Route::middleware('auth')->group(function () {
    Route::post('/jobs/insert', [JobController::class, 'insert']);
    // 其他需登录才能访问的路由
});

3. 增加空值判断避免报错

即使添加了中间件,也建议增加判断逻辑,防止意外情况导致Auth::user()返回null:

// 替换原有的user_id赋值代码
if (Auth::check()) {
    $job->user_id = Auth::user()->id;
} else {
    Alert::error('错误', '请先登录操作');
    return back();
}

4. 可选:通过Request对象获取用户

Laravel的Request对象可直接获取当前登录用户,无需导入Auth门面,代码可改为:

$job->user_id = $request->user()->id;

同样需要确保路由已添加auth中间件,否则$request->user()会返回null。


内容的提问来源于stack exchange,提问作者shandy pet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 18:42:45