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

Laravel Admin中间件失效:登录后无法跳转至admin/dashboard

Laravel管理员中间件重定向异常排查修复

数据库用户roll_as字段值为1,使用管理员账号登录后,本该跳转到admin/dashboard,却被中间件重定向到/home页面,核心问题及修复方案如下:


核心问题:中间件逻辑运算符优先级错误

你的AdminMiddleware判断逻辑存在语法问题:!Auth::user()->roll_as == '1' 中逻辑非(!)的优先级高于等于(==),实际执行顺序是先对Auth::user()->roll_as取反,再和'1'比较,导致管理员用户也会被判定为非管理员,触发重定向。

修复后的AdminMiddleware代码

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\Auth;

class AdminMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        // 用括号修正运算符优先级,或直接判断不等于1
        if(Auth::user()->roll_as != '1'){
            return redirect('/home')->with('status','Access Denied Because You Are Not Admin, This Access Is Only For Admin');
        }
        return $next($request);
    }
}

其他潜在问题修复

  1. LoginController错误的引用路径
    你在LoginController中引入了错误的中间件路径:
use Illuminate\App\Http\Middleware\Authenticate;

需改为:

use App\Http\Middleware\Authenticate;

若未直接使用该中间件,也可直接删除此行。

  1. 拼写错误修正
  • 提示信息中的Becouse改为Because,Welocome改为Welcome,Succesfully改为Successfully
  • 确认数据库字段roll_as是否为笔误(常规权限字段为role_as),若为笔误需统一修改代码与数据库字段名

验证步骤

  1. 清除Laravel缓存确保修改生效:
php artisan cache:clear
php artisan route:clear
php artisan config:clear
  1. 使用管理员账号重新登录,确认是否正常跳转到admin/dashboard

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:53:13