nelisys / rbac
Nelisys RBAC for Laravel
v0.0.3
2020-12-31 08:29 UTC
Requires
- doctrine/dbal: ^2.11
- illuminate/support: ^8.0
- laravel/sanctum: ^2.8
Requires (Dev)
- orchestra/testbench: ^6.2
README
简介
基于角色的 Laravel 访问控制。
默认情况下,该包将使用 username
列进行身份验证。如果您想使用 email
,只需在 config/nelisys/rbac.php
中将 username
改为 email
。
安装
运行 composer 安装包。
composer require nelisys/rbac
发布配置文件。
php artisan vendor:publish --provider="Nelisys\Rbac\RbacServiceProvider"
将 users.model
改为 Nelisys\Rbac\Models\User
// config/auth.php 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Nelisys\Rbac\Models\User::class, ],
在 .env
文件中添加 sanctum 配置
SANCTUM_STATEFUL_DOMAINS=example.com
在 api
中添加 sanctum 中间件
// app/Http/Kernel.php protected $middlewareGroups = [ 'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
运行迁移。
php artisan migrate
创建测试用户
运行 php artisan tinker
创建测试用户。
Nelisys\Rbac\Models\User::create([
'username' => 'alice',
'password' => bcrypt('secret'),
]);
通过 curl 测试 API
API 登录
调用 /api/login
获取令牌。
$ curl \
-H 'X-Requested-With: XMLHttpRequest' \
-d 'username=alice&password=secret' \
http://example.test/api/login
API 授权
指定带有返回令牌的头部 Authorization: Bearer
注意:将 $token
替换为返回的令牌。
$ curl \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'Authorization: Bearer $token' \
http://example.test/api/user
{
"username" : "alice",
"id" : 1,
...
}
API 注销
指定带有返回令牌的头部 Authorization: Bearer
注意:将 $token
替换为返回的令牌。
$ curl \
-X POST \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'Authorization: Bearer $token' \
http://example.test/api/logout
许可证
Nelisys RBAC 是开源软件,许可协议为 MIT 许可。