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

Laravel8自定义CheckAdmin中间件$request参数判断失效始终重定向问题

问题原因

  • 中间件逻辑错误:无论判断条件是否成立,代码都直接返回了重定向响应,永远不会执行return $next($request)将请求传递给后续路由/控制器。且当判断$request->user == 'admin'成立时,又重定向到/admin地址,会再次触发该中间件,直接形成无限重定向死循环。
  • 参数获取方式不规范:Laravel中$request->user优先会调用user()方法获取登录用户实例,而非你传递的URL query参数,判断条件永远不成立,自然就会重定向到/about。

修正方案

修改CheckAdmin.php中间件的handle方法逻辑即可:

public function handle(Request $request, Closure $next)
{
    // 明确获取URL query参数中的user值
    if($request->query('user') == 'admin'){
        // 验证通过,将请求传递给Admin控制器
        return $next($request);
    } 
    // 验证不通过重定向到about页
    return redirect('/about');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:03