You need to enable JavaScript to run this app. Laravel 无需验证邮箱登出/排除AUTH路由中指定路由的方案
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 无需验证邮箱登出/排除AUTH路由中指定路由的方案

解决方案

你之前的拆分路由方案未生效的核心原因是路由注册顺序错误,Laravel路由从上到下匹配,默认Auth::routes()注册的路由优先级更高,你单独写的logout路由没有被匹配到,还是走了自带verified中间件的默认路由。以下是两种亲测可行的方案:

方案1:优先注册排除中间件的logout路由

将logout路由写在Auth路由注册之前,主动移除verified中间件校验:

// 优先匹配logout路由,排除邮箱验证中间件
Route::post('logout', 'Auth\LoginController@logout')
    ->name('logout')
    ->withoutMiddleware(['verified']);

// 再注册带邮箱验证的其余Auth路由
Auth::routes(['verify' => true]);

方案2:在登录控制器中排除logout方法的校验

如果不想调整路由顺序,直接修改app/Http/Controllers/Auth/LoginController.php的构造方法,给logout方法单独排除verified中间件即可:

public function __construct()
{
    $this->middleware('guest')->except('logout');
    // 新增以下代码,给logout方法排除邮箱验证限制
    $this->middleware('verified')->except('logout');
}

两种方案都不需要拆分整组Auth路由,代码简洁易维护。

内容的提问来源于stack exchange,提问作者anouar es-sayid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 06:54:03