Laravel 路由中间件中使用多个 Auth:guard 的方法

admin 阅读:86 2024-03-03

在 Laravel 路由中间件中定义 Auth 中间件,可以快捷的进行身份验证并获取登录的用户信息,但是当我们的项目中定义了多个 Auth:guard 时,要怎么在路由中间件中配置呢?

比如我们的项目中有学生、教师和机构三种用户,我们对应定义了三个 Guard,分别为:

'guards' => [
    'student' => [
        'driver' => 'session',
        'provider' => 'students',
    ],
    'teacher' => [
        'driver' => 'session',
        'provider' => 'teachers',
    ],
    'partner' => [
        'driver' => 'session',
        'provider' => 'partners',
    ],
],

我们希望当任意一个 Auth:guard 通过验证时,都可以访问同一个路由,可以使用逗号在中间件中传递 Guard:

Route::group(['middleware' => ['auth:student,teacher,partner'] ], function(){
    Route::get('/home', 'HomeController@index');
});

这样就可以实现,登录的账号通过任意一个 Guard 就可以访问 /home 了。

声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!