我正在使用laravel-permission軟件包。我創建了2個角色admin
和user
,並將admin
角色與權限Access CMS
關聯。我還創建了兩個用戶,一個是admin
角色,另一個是user
角色。laravel許可的Laravel角色
我已經把我所有的admin
路線背後AdminMiddleware
:
Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'isAdmin']], function() {
// Routes
}
中間件來自this tutorial:
public function handle($request, Closure $next)
{
if (!Auth::user()->hasPermissionTo('Access CMS')) {
die('aargh');
}
return $next($request);
}
這適用於與admin
角色的用戶。問題是,當我與其他用戶一起登錄時,它(應該是)die
,但用戶仍然登錄。如果我在此嘗試後回顯Auth::user()
,它會顯示非admin
用戶。我所期望的是,它可以防止用戶登錄。我錯過了什麼?
爲什麼要記錄用戶身份驗證,如果他沒有該路線的權限?國際海事組織這將更邏輯重定向這個用戶到一個特定的頁面,並顯示他沒有訪問的錯誤:'返回重定向() - >路由('家') - > withErrors ['沒有訪問'] –
我的觀點是當它擊中該中間件時用戶已經登錄。如果我把中間件中的'return'語句放在用戶仍然登錄的位置。 – GluePear