首页 > 解决方案 > Laravel-'auth' 中间件不起作用

问题描述

我使用 Laravel 5.6.33。我希望用户只有在他/她登录/注册后才能访问“仪表板”页面。当我使用“guest”中间件时,用户根本无法访问该页面,而当我使用“auth”中间件时,用户始终可以访问该页面。我该怎么办?

Route::group(['middleware' => ['web']], function (){
    Route::get('/dashboard', [
        'uses' => 'UserController@getDashboard',
        'as' => 'dashboard',
        'middleware' => 'auth'
    ]);
});

我也在函数或构造函数中添加$this->middleware('auth');了,但它不起作用。我该怎么办?getDashboardUserController

Kernel.php中的auth地址如下:

 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,

标签: laravel-5.6laravel-middleware

解决方案


如果您正在使用Laravel 5.6,则无需使用web中间件包装您的路由,只要将它们放在routes\web.php文件中即可。Laravel 在RouteServiceProvider.php.

出于您的目的,auth中间件应该可以工作。试试这个,而不是你所拥有的:

Route::middleware('auth')->group(function() {
  Route::get('/dashboard', [
    'uses' => 'UserController@getDashboard',
    'as' => 'dashboard'
  ]);
});

推荐阅读