From d10a35437039edc09b678d7af275655876caa81e Mon Sep 17 00:00:00 2001 From: pllx Date: Mon, 27 Apr 2026 07:19:58 +0000 Subject: [PATCH] fix: logout route accepts GET to prevent 404 on page refresh POST /logout redirects to / after logging out, but when the redirect fails to complete (browser/network quirk) the user is stuck on /logout. Refreshing sends GET, which had no route defined, causing a 404. Changed Route::post to Route::match(['get', 'post']) so refreshing after a stuck redirect gracefully completes the logout instead. --- routes/web.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index ebe37e0..bfff46e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -50,8 +50,8 @@ Route::middleware('guest')->group(function () { Route::post('/reset-password', [PasswordResetController::class, 'update'])->name('password.update'); }); -// 处理退出登录 -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); +// 处理退出登录(同时接受 GET 和 POST,避免 POST 后刷新页面导致 404) +Route::match(['get', 'post'], '/logout', [AuthController::class, 'logout'])->name('logout'); // 登录失效后用于收口离场清理的签名地址,不依赖当前会话。 Route::get('/room/{id}/leave-expired/{user}', [ChatController::class, 'expiredLeave'])