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