我已经设置了Laravel的内置身份验证功能,但它没有管理员。我一直在寻找方法来做到这一点,但许多教程似乎有点重要。我想要一个简单,安全的解决方案,利用我已有的用户表。
我看过这个:https://laracasts.com/discuss/channels/laravel/user-admin-authentication
指令来自多个用户,并且有点难以理解。我已经为我的用户数据库设置了“isAdmin”列。我有一个管理员的中间件,但我不知道如何从这里开始。
答案 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');
}
}