2016-11-18 30 views
0

我有一个Laravel应用程序,使用多用户表为不同的角色。Laravel:在Auth中间件中的Multi Guald

我加入2名定制卫士这样的:

'guards' => [ 
    'consumer' => [ 
     'driver' => 'session', 
     'provider' => 'consumer', 
    ], 
    'member' => [ 
     'driver' => 'session', 
     'provider' => 'member', 
    ] 
] 

而且我想与大家分享消费者和成员的相同的路线。但我不知道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); 
} 

如果我可以通过自定义2名警卫的看守$变量,它可以共享自定义和用户之间的路由。但我不知道如何通过后卫的名字

回答

0

在定义路由组做这样的事,

Route::group(['middleware' => 'auth:guard_name'], function() { 
    //Your Route goes here 
} 

希望能解决你的问题。

2

你可以通过警卫与逗号,为exapmle:

Route::group(['middleware' => ['auth:comsumer, member'] ], function(){ 
     Route::get('/home', '[email protected]'); 
    }); 
+0

你救我一命:d –

相关问题