【问题标题】:How to use a guard as an Middleware for authenticating users in LARAVEL如何在 LARAVEL 中使用守卫作为中间件对用户进行身份验证
【发布时间】:2019-07-19 00:04:15
【问题描述】:

我正在尝试构建一个具有多个角色的 web 应用程序,所以一个是管理员,它有一个名为“admin”的守卫我可以很好地进行身份验证,但我只想保护我的路由,以便其他人可以访问它。

/ 我如何验证我的管理员/

if (Auth::guard('admin')->attempt(['username' => $username, 'password' => $password])) {

    // if passed
    // redirect to dancedrick media welcome dasboard page
    return ['redirect' => route('cmswelcome')];

   } else {

    // if faills
    // redirect to dancedrick media welcome dasboard page
     return ['redirect' => route('cmsregister')];
   }

我要保护这个回合

Route::prefix('admin')->group(function () {

   // redirect admin to cms welcome 
    Route::get('/cms/welcome', [
        'uses' => 'AdminController@cmswelcome',
        'as' => 'cmswelcome',
    ]);

});

就像使用 'middleware' => 'auth'

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以将守卫传递给admin 中间件:

    来自docs

    在将 auth 中间件附加到路由时,您还可以指定 应该使用哪个守卫来验证用户。守卫 指定的应该对应于 guards 数组中的一个键 你的 auth.php 配置文件:

    public function __construct()
    {
        $this->middleware('auth:api');
    }
    

    在你的情况下:

    Route::prefix('admin')->group(['middleware' => ['auth:admin']],function () {
    
       // redirect admin to cms welcome 
        Route::get('/cms/welcome', [
            'uses' => 'AdminController@cmswelcome',
            'as' => 'cmswelcome',
        ]);
    
    });
    

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 2018-07-01
      • 1970-01-01
      • 2021-05-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多