Laravel5.1登录后跳转正常但自动退回到登录页问题排查
问题定位与修复方案
核心问题1:冗余的登录态操作破坏session存储
Auth::attempt()执行成功后Laravel已经自动完成登录逻辑,将用户身份信息写入session。你后续调用的\Auth::setUser($user)仅会修改当前请求内存中的用户实例,不会同步更新session,甚至会覆盖已写入的登录标识,导致后续请求无法读取有效登录态。
修复方案:直接删除以下两行冗余代码:
$user = User::find(\Auth::id()); \Auth::setUser($user);
核心问题2:目标路由组缺少session中间件
Laravel 5.1 默认所有路由会加载session中间件,如果你将admin_messages放在了新增的自定义路由组中,且该路由组排除了session中间件,就会导致目标页面请求无法读取session中的登录信息,被判定为未登录。
修复方案:检查
app/Http/routes.php中admin_messages所属路由组配置,确保该组加载了Illuminate\Session\Middleware\StartSession中间件。
优化建议(可选,规避额外问题)
你可以直接复用Auth::attempt()返回的用户实例,避免手动查询数据库,同时用increment方法简化计数逻辑,也能规避login_count未加入$fillable导致的保存失败问题:
if (\Auth::attempt(array('email' => $input['email'], 'password' => $input['password']))){ $user = \Auth::user(); $user->increment('login_count'); return \Redirect::route('admin_messages'); }
内容的提问来源于stack exchange,提问作者Darshan Panchasara
相关产品推荐
相关产品推荐

