我有一个使用不同用户角色的多用户表的Laravel应用程序。
我添加了2个这样的自定义防护:
'guards' => [
'consumer' => [
'driver' => 'session',
'provider' => 'consumer',
],
'member' => [
'driver' => 'session',
'provider' => 'member',
]
]
Run Code Online (Sandbox Code Playgroud)
我想与消费者和会员共享相同的路线。但是我不知道Laravel如何将防护名称传递给Auth中间件。
看文件 Illuminate\Auth\Middleware\Authenticate
protected function authenticate(array $guards)
{
if (empty($guards)) {
return $this->auth->authenticate();
}
foreach ($guards as $guard) {
if ($this->auth->guard($guard)->check()) {
return $this->auth->shouldUse($guard);
}
}
throw new AuthenticationException('Unauthenticated.', $guards);
}
Run Code Online (Sandbox Code Playgroud)
如果我可以将两个自定义防护传递给$ guards变量,它可以共享自定义和用户之间的路由。但我不知道如何通过后卫的名字
小智 9
您可以用逗号来传递警卫,例如:
Route::group(['middleware' => ['auth:comsumer, member'] ], function(){
Route::get('/home', 'HomeController@index');
});
Run Code Online (Sandbox Code Playgroud)