使用Laravel 5.2身份验证的简单管理员用户

时间:2016-07-22 15:13:43

标签: authentication laravel-5 laravel-5.2 admin

我已经设置了Laravel的内置身份验证功能,但它没有管理员。我一直在寻找方法来做到这一点,但许多教程似乎有点重要。我想要一个简单,安全的解决方案,利用我已有的用户表。

我看过这个:https://laracasts.com/discuss/channels/laravel/user-admin-authentication

指令来自多个用户,并且有点难以理解。我已经为我的用户数据库设置了“isAdmin”列。我有一个管理员的中间件,但我不知道如何从这里开始。

1 个答案:

答案 0 :(得分:2)

如果我什么都不忘记,那就足够了。

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('/', 'AdminController@index')->name('admin.index');
    Route::get('/add-user', 'AdminController@addUser')->name('admin.addUser');
});

懒惰的解决方案,不推荐:

在你AdminController中,添加以下内容:

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