php - Laravel Auth 仅验证管理员/ super 用户

标签 php laravel authorization laravel-5

我在 Windows 开发机器上使用 Laravel 5。我想在整个应用程序中自定义和使用 Auth 中间件,以维护身份验证。 我的用例是一个标准的用例。有两类(或三类)用户 - AdminRegular(Regular 是所有非管理员的用户)。

管理员具有明显的后端管理角色,因此有一个单独的路由组/admin/,它将未登录的用户重定向到/admin/login。我是这样设置的..

Route::group(['middleware'=>'auth', 'prefix' => 'admin'], function() {
  Route::get('login','App\AuthController@getLogin');
  Route::post('login','App\AuthController@postLogin');
});

发布登录表单时,如何要求 Auth 添加过滤器

  • 要么只从“is_admin”为真的那些用户中验证
  • 或者要求它首先加入 User 和 UserRoles 表以仅识别具有 Admin 角色的用户?

最佳答案

我建议你定义另一个中间件来检测用户是否是管理员而不是修改授权。现在将这个另一个中间件添加到您的路由中,只有管理员可以访问。

像这样添加几个中间件来路由

Route::group(['middleware' => ['auth','admin']], function() {

中间件看起来像

public function handle($request, Closure $next) {
  if (Auth::user()->role == "admin") {
    return $next($request);
  } else {
    return redirect("/")->withMyerror("You are not authorized for this action");
  }
}

关于php - Laravel Auth 仅验证管理员/ super 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842660/

相关文章:

php - 参数号无效 : parameter was not defined error

php - UploadedFile getPathname 为空

azure - 对 Azure 表的 POST 请求中的授权 header

authorization - XACML 将 PIP 结合到策略中

laravel - 如何在 laravel View 中自动更新数据?

asp.net-mvc - AuthorizeAttribute构造函数参数Roles equals string.empty是什么意思?

javascript - 如何将 js 表单元格值 POST 到 PHP 并插入到 MYSQL 数据库

php - 在 LIKE 查询中查找 % 字符

Laravel-mix Webpack 公共(public)路径

mysql - Laravel Left join 向右表添加 where 子句