Auth::logout()后的Laravel重定向不起作用



我想登出并将用户从/admin/home重定向到/url。根据登出的文档,它应该是这样工作的:

public function logout(Request $request)
{
Auth::logout();

$request->session()->invalidate();

$request->session()->regenerateToken();

return redirect('/');
}

退出工作,但redirect不工作。url还是/admin/home

logout route位于web.phpauth中间件的底部:

Route::group(['middleware' => 'auth', 'prefix' => 'admin'], function() {
Route::inertia('/home', 'home')->name('admin.home');
Route::inertia('/events', 'events')->name('admin.events');
Route::inertia('/event-view', 'event-view')->name('admin.event-view');
Route::inertia('/gallery', 'gallery')->name('admin.gallery');
Route::inertia('/gallery-view', 'gallery-view')->name('admin.gallery-view');
Route::inertia('/news', 'news')->name('admin.news');
Route::inertia('/news-view', 'news-view')->name('admin.news-view');
Route::inertia('/service', 'service')->name('admin.service');
Route::inertia('/contact', 'contact')->name('admin.contact');
Route::get('/terms', [LegalPageController::class, 'indexTerms'])->name('admin.terms');
Route::put('/terms/update', [LegalPageController::class, 'updateTerms'])->name('admin.terms.update');
Route::get('/privacy', [LegalPageController::class, 'indexPrivacy'])->name('admin.privacy');
Route::put('/privacy/update', [LegalPageController::class, 'updatePrivacy'])->name('admin.privacy.update');
Route::get('/copyright', [LegalPageController::class, 'indexCopyright'])->name('admin.copyright');
Route::put('/copyright/update', [LegalPageController::class, 'updateCopyright'])->name('admin.copyright.update');
Route::get('/disclaimer', [LegalPageController::class, 'indexDisclaimer'])->name('admin.disclaimer');
Route::put('/disclaimer/update', [LegalPageController::class, 'updateDisclaimer'])->name('admin.disclaimer.update');
Route::get('/legal', [LegalPageController::class, 'indexLegal'])->name('admin.legal');
Route::put('/legal/update', [LegalPageController::class, 'updateLegal'])->name('admin.legal.update');
Route::get('/about', [AboutController::class, 'indexAbout'])->name('admin.about');
Route::put('/about/update', [AboutController::class, 'updateAbout'])->name('admin.about.update');
Route::post('/logout', [LoginController::class, 'logout']);
Route::any('/{any}', function () {
Route::inertia('/', 'home')->name('admin.home');
});
});

前端像这样馈送路由:

const logout = () => {
axios.post('/admin/logout')
}

如果这是相关的:

  1. 我不使用remember_token在我的users数据库。
  2. Request是一个空数组,因为我不知道从前端传递哪些数据。

您可以创建新的注销逻辑,例如:将下面显示的代码添加到:AppHttpControllersAuthLoginController.php

protected function loggedOut(Request $request) {
return redirect('/');
}

最新更新