zainburfat / rbac
此包允许您在数据库中管理用户权限和角色,以及认证和授权
v1.0.12
2023-01-09 09:49 UTC
Requires
- laravel/passport: ^10.4
README
Laravel - 基于角色的访问控制
自定义路由访问控制
此包允许您在数据库中管理用户权限和角色,以及认证和授权
- 自定义 RBAC 基于用户角色的权限包
- 自定义 RBAC 提供了在几分钟内使用 Laravel/Passport 的灵活性。
先决条件
命令
composer require zainburfat/rbac
运行迁移
php artisan migrate
安装 Passport
php artisan passport:install
在 "User" 模型中使用 trait
use HasApiTokens use UserPermissionTrait
要排除某些方法/类的权限创建,只需在您想要排除的类/方法的文档块中添加 "@exclude-permission"。
/** *... *@exclude-permission *... */ class SomeController extends Controller { /** *... *@exclude-permission *... */ public function index() { ... } }
权限通过命令根据具有方法的控制器动态创建
php artisan create:permission
在 config/auth.php 中定义 API 认证守卫,并将驱动选项设置为 passport
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
发布配置文件
php artisan vendor:publish --tag=custom-rbac
在 config\customrbac.php 中设置令牌过期时间
'tokensExpireIn' => now()->addDays(15), 'refreshTokensExpireIn' => now()->addDays(30), 'personalAccessTokensExpireIn' => now()->addMonths(6)
使用 PermissionsApi 中间件授权用户访问特定的 API 路由,对于 Web 路由则使用 PermissionsWeb 中间件
在 app/http/kernel.php 的 protected $routeMiddleware 下
'permissionsApi' => \Zainburfat\Rbac\Middleware\PermissionsApi::class, 'permissionsWeb' => \Zainburfat\Rbac\Middleware\PermissionsWeb::class,
使用包的路由进行登录和注册
登录时使用参数 ('email', 'passport')
注册时使用参数 ('name', 'email', 'passport')
http://yourdomain/rbac_login http://yourdomain/rbac_register