2016-11-18 56 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 –

相關問題