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

Laravel 9.19手动输入logout URL报错:GET方法不支持的解决办法

解决Laravel 9.19手动输入logout URL报错的方法

报错核心原因:默认生成的logout路由仅支持POST请求,手动在地址栏输入URL属于GET请求,不符合路由方法限制,因此触发错误。以下是两种可行的解决方式:

方式一:添加GET类型logout路由并手动实现登出逻辑

在web.php中,Auth::routes([ 'register' => false ]);代码之后添加以下路由:

Route::get('/logout', function () {
    auth()->logout();
    request()->session()->invalidate();
    request()->session()->regenerateToken();
    return redirect('/'); // 可修改为你需要跳转的页面,比如登录页或首页
})->name('logout.get');

手动输入/logout时,GET请求会执行上述闭包内的登出逻辑,完成后跳转到指定页面,同时保证会话安全失效。

方式二:创建GET路由复用原有登出方法(需处理CSRF验证)

如果想复用LoginController@logout的逻辑,可添加如下路由:

Route::get('/logout', [App\Http\Controllers\Auth\LoginController::class, 'logout'])->name('logout.get');

注意:原logout方法默认会校验CSRF令牌,直接用GET请求会触发CSRF错误。若要使用这种方式,需要在LoginController的logout方法中跳过CSRF验证(不推荐,存在安全风险),或者更稳妥的方式是参照方式一手动实现登出逻辑。

内容的提问来源于stack exchange,提问作者Md. Shamvil Hossain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:49:54