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

Laravel升级至7后使用auth中间件触发非法偏移类型异常

解决Laravel 7中使用auth中间件抛出非法偏移类型异常的问题

我刚仔细排查了你的配置,问题根源很明确——你的Http\Kernel.php里没有注册auth中间件的别名!

问题原因

你在路由组里使用了['auth']中间件,但在Kernel.php的$routeMiddleware数组中,完全找不到auth对应的中间件绑定。Laravel无法识别这个别名,解析时出现错误,才会把HttpRequest对象错误地传入AuthManager的guard()方法里,触发非法偏移类型的异常。

快速修复方案

打开你的app/Http/Kernel.php,找到$routeMiddleware数组,添加一行auth中间件的注册:

protected $routeMiddleware = [
    'localization' => \App\Http\Middleware\localization::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
    // 新增这一行
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
];

补充说明

  1. 你已经在文件顶部导入了Authenticate类,所以直接添加别名绑定即可,不需要额外导入。
  2. 如果你是给API路由做认证,可以在路由里使用auth:api来指定API guard,但前提也是要先注册auth这个中间件别名。
  3. 修复后重启一下你的服务(如果用了php artisan serve的话),再请求路由就能正常触发认证逻辑,不会再抛出异常了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:52:54