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

Laravel:未定义路由‘Login’?自定义登录路由配置问题

解决Laravel Auth中间件跳转自定义登录路由的问题

这个问题我之前也碰到过——Laravel默认的Auth中间件在用户未登录时,会自动尝试跳转到名为login的路由,要是你的登录路由用了自定义名称(比如frontend.guest.login),就会触发Route [login] not defined的错误。下面给你两种简单可行的解决办法:

方法一:修改默认的Authenticate中间件

直接修改Laravel自带的中间件,全局替换跳转目标:

  1. 打开项目里的 app/Http/Middleware/Authenticate.php 文件
  2. 找到redirectTo方法,把默认的route('login')改成你的自定义路由名称:
protected function redirectTo($request)
{
    if (! $request->expectsJson()) {
        // 替换成你的自定义登录路由名称
        return route('frontend.guest.login');
    }
}

方法二:通过AuthServiceProvider全局配置

不想修改中间件文件的话,可以在服务提供者里设置全局跳转规则:

  1. 打开 app/Providers/AuthServiceProvider.php 文件
  2. 在boot方法里添加以下代码:
use Illuminate\Support\Facades\Auth;

public function boot()
{
    $this->registerPolicies();

    // 自定义未登录时的跳转路由
    Auth::redirectTo(function () {
        return route('frontend.guest.login');
    });
}

额外提醒

确保你的登录路由已经正确设置了名称,比如路由定义是这样的:

Route::get('/your-login-path', [LoginController::class, 'showLoginForm'])
    ->name('frontend.guest.login');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:44:01