此包允许您在数据库中管理用户权限和角色,以及认证和授权

v1.0.12 2023-01-09 09:49 UTC

This package is auto-updated.

Last update: 2024-09-11 08:16:30 UTC


README

Total Downloads License

Laravel - 基于角色的访问控制

自定义路由访问控制
此包允许您在数据库中管理用户权限和角色,以及认证和授权
  1. 自定义 RBAC 基于用户角色的权限包
  2. 自定义 RBAC 提供了在几分钟内使用 Laravel/Passport 的灵活性。
先决条件
  • Laravel ^8.0
  • Php ^7.3
  • Laravel/Passport ^10.4
  • 命令
    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