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

Laravel9中Auth::user()返回null问题求助

问题原因

你注册成功后仅创建了用户记录,但没有自动登录该用户。Laravel的Auth::user()依赖当前会话的登录状态获取用户信息,未执行登录操作时,会话中无用户凭证,因此返回null。

解决方案

修改RegisterController的store方法,在创建用户后调用Auth::login()完成自动登录:

  1. 在RegisterController顶部导入Auth门面:
use Illuminate\Support\Facades\Auth;
  1. 修改store方法,将创建的用户实例赋值给变量,再执行登录:
public function store(Request $request)
{
   $this->validate($request, [
       'name'=> 'required|max:255',
       'username' => 'required|max:255',
       'email' => 'required|email|max:255',
       'password' => 'required|confirmed',
   ]);
   
   // 创建用户并保存到变量
   $user = User::create([
       'name' => $request->name,
       'username' => $request->username,
       'email' => $request->email,
       'password' => Hash::make($request->password),
   ]);
   
   // 自动登录刚创建的用户
   Auth::login($user);
   
   return redirect()->route('dashboard');
}
额外建议

为确保/dashboard路由仅对已登录用户开放,给该路由添加auth中间件:

Route::get('/dashboard', [DashboardController::class,'index'])->name('dashboard')->middleware('auth');

未登录用户访问该路由时会自动重定向到登录页,符合Laravel安全规范。

内容的提问来源于stack exchange,提问作者Gabriel Rogath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 05:45:40