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

Simple Admin User with Laravel 5.2 Authentication

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

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

说明来自多个用户,有点难以理解。我已经为我的用户数据库设置了一个 "isAdmin" 列。我有一个管理员中间件,但我不确定如何从这里开始。

如果我不忘记任何东西,这应该足够了。

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');
    }
}