在 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 了。