Laravel 11自定义admin路由使用auth中间件异常求助
问题解决步骤
1. 给后台路由补上web中间件组
你的admin.php路由没加web中间件组,而auth中间件依赖session、CSRF这些web组里的核心功能,没它的话auth根本识别不了用户是否登录,所以才会直接重定向到首页。修改bootstrap/app.php里的路由配置:
// 替换原来的then回调代码 then: function () { Route::middleware(['web', 'auth']) ->group(base_path('routes/admin.php')); },
2. 把登录/注册路由套进guest中间件组
在routes/web.php里,给/sign-in、/sign-up这些路由加上guest中间件,确保登录后无法访问:
Route::middleware('guest')->group(function () { Route::view('/sign-in', 'auth.sign-in')->name('sign-in'); Route::view('/sign-up', 'auth.sign-up')->name('sign-up'); });
3. 让未登录访问后台跳登录页(可选)
如果不想未登录时跳首页,想直接跳登录页,修改App\Http\Middleware\Authenticate里的redirectTo方法:
protected function redirectTo($request) { if (! $request->expectsJson()) { return route('sign-in'); // 这里使用你登录页的路由名称 } }
内容的提问来源于stack exchange,提问作者Ruhul Amin
相关产品推荐
相关产品推荐

