2016-07-22 84 views
0

我已經設置了Laravel的內置身份驗證功能,但它沒有管理員權限。我一直在想辦法做到這一點,但很多教程似乎有點重要。我想要的是簡單,安全的解決方案,利用我已有的用戶表。具有Laravel 5.2身份驗證的簡單管理員用戶

我看這個:https://laracasts.com/discuss/channels/laravel/user-admin-authentication

指令來自幾個用戶,這是一個有點難以遵循。我爲我的用戶數據庫設置了一個「isAdmin」列。我有一箇中間件的管理員,但我不知道如何從這裏開始。

回答

1

如果我沒有忘記任何東西,這應該就夠了。

Kernel.php:

protected $routeMiddleware = [ 
    //... 
    'isAdmin' => \App\Http\Middleware\IsAdminMiddleware::class, 
]; 

IsAdminMiddleware:

public function handle($request, Closure $next) 
{ 
    if(!\Auth::user()->isAdmin){ 
     return Redirect::route('index'); 
    } 

    return $next($request); 
} 

routes.php文件:

Route::group(['middleware' => ['auth', 'isAdmin']], function() { 
    Route::get('/', '[email protected]')->name('admin.index'); 
    Route::get('/add-user', '[email protected]')->name('admin.addUser'); 
}); 

懶惰溶液,不推薦使用:

在你AdminController,添加以下內容:

public function __construct(){ 
    if(!\Auth::user()->isAdmin){ 
     dd('Redirect user or whatever, this is where all but admin gets stucked'); 
    } 
} 
+0

這就是我得到: FatalThrowableError在IsAdmin.php線17: 級 '應用程序\ HTTP \中間件\驗證' 未找到 – Jubiki

+0

使用反斜槓驗證之前: :用戶() - > isAdmin。我已經更新了這個例子。 – SebHallin

+0

它運行良好,但現在我無法訪問我爲管理員創建的頁面。我不確定它是否認識到我是管理員?我的數據庫表格作爲isAdmin的布爾列。 1爲真,0爲假,對嗎?爲什麼它不認可我是管理員? – Jubiki

相關問題