定制 mradang/laravel-rbac 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mradang/laravel-rbac

最新稳定版本:v3.5.0

Composer 安装命令:

composer require mradang/laravel-rbac

包简介

laravel-rbac

README 文档

README

$ composer require mradang/laravel-rbac -vvv

配置

  1. 添加 .env 环境变量,使用默认值时可省略
# 指定用户模型类,实现 RBAC 的关键配置
RBAC_USER_MODEL=\App\Models\User
  1. 刷新数据库迁移
php artisan migrate:refresh
  1. 用户模型配置
use Laravel\Sanctum\HasApiTokens;
  1. 路由

    需指定路由 name,以「abc.xyz」形式命名,并添加「rbac」中间件

添加的内容

添加的数据表迁移

  • rbac_access
  • rbac_node
  • rbac_role_user
  • rbac_role

添加的路由

  • post /api/rbac/allNodes
  • post /api/rbac/allRoles
  • post /api/rbac/createRole
  • post /api/rbac/deleteRole
  • post /api/rbac/updateRole
  • post /api/rbac/findRoleWithNodes
  • post /api/rbac/saveRoleSort
  • post /api/rbac/syncRoleNodes

添加的命令

  1. 生成路由描述文件:route_desc.json
php artisan rbac:MakeRouteDescFile
  1. 刷新路由节点及描述
php artisan rbac:RefreshRbacNode

添加的路由中间件

  • rbac

路由保护

用户模型 Trait

use mradang\LaravelRbac\Traits\UserModelTrait;

增加以下内容:

  • belongsToMany rbacRoles 角色关联(多对多)
  • array getAccessAttribute 权限属性 access,user 模型需实现 getIsAdminAttribute(超级管理员)属性
  • void rbacSyncRoles(array $roles) 同步用户与角色的关联,$roles 为角色 id 数组
  • void rbacDeleteUser() 删除用户权限信息

签发令牌

$token = $user->createToken('app-name', $user->access)->plainTextToken;

验证登录

Route::middleware(['auth:sanctum'])

验证权限

Route::middleware(['auth:sanctum', 'rbac'])

统计信息

  • 总下载量: 753
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-11-18