我们有一个很大的网站,有很多页面。几乎所有这些应用程序都需要用户登录。我不是在每个页面或每个控制器上指定"Auth“,而是根据用户是否登录来设置路由,如下所示:
// in web.php
if (Auth::isLoggedIn()) {
Route::get('/', function () { return view('pages/dashboard'); });
... lots more
}
我不能这样做的原因是因为Auth使用会话,而会话还没有在web.php中初始化,因为它是作为中间件完成的,在这一点上还没有运行。
我想我用的是Laravel 8。
谢谢。
发布于 2021-01-22 01:02:39
您可以对需要用户登录的路由进行分组,然后对分组后的路由使用auth中间件:
Route::middleware(['auth'])->group(function () {
Route::get('/', function () {
//
});
Route::get('/', function () { return view('pages/dashboard'); });
});
发布于 2021-01-22 01:25:28
尝试使用Laravel的Route middleware。路由中间件可用于仅允许经过身份验证的用户访问给定的路由。
https://stackoverflow.com/questions/65832172
复制相似问题