编程语言
首页 > 编程语言> > php-Laravel多种用户类型

php-Laravel多种用户类型

作者:互联网

下面的描述基于Laravel开发.

我希望实现的功能的简要说明是,

有3种类型的用户.超级管理员,管理员和最终用户.

仅存在一个超级管理员,他可以创建管理员和最终用户.可能存在多个管理员,并且为给定站点定义了一个管理员.管理员可以创建多个最终用户.

为了促进上述用例,我应该在Laravel中采用哪种方法?

到目前为止,我试图做到的是:

我实施了多个防护措施,但由于有些路线应可供所有类型的用户访问,因此我陷入了困境.我无法使用多个防护来完成此操作,因为如果我为路由定义了多个防护,则只有在所有多种用户类型均已登录的情况下,才能访问该路由.

说,我有一条由Superadmin和Admin保护的路由,只有当我以Superadmin身份登录时,此路由才可用.仅当超级管理员和管理员都登录时,路由才可用.

似乎如果我们分配了多个警卫,则警卫之间的关系为AND.但是我需要对它们进行“或”运算.

后卫分配:

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

解决方法:

按照您的逻辑,超级管理员始终是管理员,而管理员也是最终用户.如果您从在嵌套级别打开路线开始,您可以像这样进行工作.

Route::group(['middleware' => ['auth:enduser']], function(){
    // All the routes available for Enduser


    // For Admin
    Route::group(['middleware' => ['auth:admin']], function(){
        // Give admin routes here


        //Create group for SuperAdmin
        Route::group(['middleware'=>['auth:superadmin']], function(){
              // Super admin routes
        });
    });
});

这样,超级管理员就可以访问所有内容.

标签:laravel-5-4,authentication,php
来源: https://codeday.me/bug/20191025/1932375.html