nelisys/rbac

Nelisys RBAC for Laravel

v0.0.3 2020-12-31 08:29 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:38 UTC


README

Total Downloads

简介

基于角色的 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 许可