journeycx/authuser

AuthUser - Laravel 路由授权库

dev-main 2024-05-12 15:04 UTC

This package is auto-updated.

Last update: 2024-09-12 15:55:16 UTC


README

AuthUser 是 Laravel 的灵活授权系统,它检查访问特定网站或应用程序部分的 route 权限。可以通过 用户 基、角色 基、条件性 添加权限。它使用 authority.checkpost 中间件来过滤当前访问路由的权限,在此中间件下检查用户登录的每个权限。

安装

在您的 composer.json 中要求此包,或通过运行以下命令安装它:

    composer require journeycx/authuser

现在,将此行插入到您的 config/app.php 中的 provider 数组下。

    journeycx\AuthUser\AuthUser::class

现在,在此之后运行此命令,然后 config/authuser.phpapp/Http/Middleware/AuthUserCheckpostMiddleware.php 文件已发布。

    php artisan vendor:publish  --tag="authuser"

现在,将此行插入到您的 app/Http/Kernel.php 中的 $routeMiddleware 数组下。

    'authority.checkpost'  => \App\Http\Middleware\AuthUserCheckpostMiddleware::class

使用 authority.checkpost 中间件来处理基于权限的路由。

    Route::group(['middleware' => 'authority.checkpost'], function () {
        // Place all those routes here which needs authentication and authorization.
    });

现在,基本设置已完成。您需要使用 config/authuser 配置权限规则。

配置

以下为权限结构的说明,但强烈建议您阅读更多关于 文档

    [
        'allow' => ['*'], // Allowed permission to user. Priority is less than deny.
        'deny'  => ['temp1'], // Deny permission to user. Priority is higher than allow.
    ]

    canAccess('temp1');
    // false 

使用 - 辅助函数

  • canAccess($accessId = null);
    检查访问,默认情况下检查当前路由并返回布尔值响应。
    canAccess('temp1');
    // true or false
  • canPublicAccess($accessId = null); - 不需要身份验证
    检查公开访问,默认情况下检查当前路由并返回布尔值响应。
    canPublicAccess();
    // true or false

使用 - 门面

  • AuthUser::check($accessId = null, $requestForUserId = null)
    检查 $accessId 的访问权限,默认情况下检查当前路由并返回布尔值响应。它可以通过传递用户 ID 参数 ($requestForUserId) 检查特定用户的访问权限。
    AuthUser::check('temp1');
    // true or false
  • AuthUser::isPublicAccess($accessId = null); - 不需要身份验证
    检查 $accessId 的访问权限,默认情况下检查当前路由并返回布尔值响应。
    AuthUser::isPublicAccess('temp1');
    // true or false

使用 - 指令

  • @canAccess($accessId = null);
    检查访问,默认情况下检查当前路由并返回布尔值响应。
    @canAccess()
       // your logic here.
    @endAccess;
  • @canPublicAccess($accessId = null); - 不需要身份验证
    检查公开访问,默认情况下检查当前路由并返回布尔值响应。
    @canPublicAccess()
       // your logic here.
    @endAccess;