php-江南app体育官方入口


php-casbin 是一个用 php 语言打造的轻量级开源访问控制框架,支持 acl、rbac、abac 多种模型。它采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 rbac、基于属性的访问控制 abac 等。

更新内容:

  • 使用 symfony cache 组件重新实现 cachedenforcer,遵循 psr-6 规范
  • 新增条件角色管理器(conditionalrolemanager),使 rbac 权限控制支持角色的条件定义
  • 将 php 的最低版本升级为 php 8.0,充分利用 php 8.0 的新特性
  • 重构 logger,支持直接使用 prs-3 规范的日志实现,不在单独使用桥接(casbin/psr3-bridge)

另外,除了主库更新外,还提供了一个全新的 php-casbin 起步套件(),该套件结合 laravel-authz 和 jetstream 实现,帮助新手开发者快速了解 php-casbin 。

screenshot_1.jpeg

casbin 开源项目介绍

casbin 是一个强大的、高效的开源访问控制框架。涉及到 go、java、node.js、javascript (react)、python、php、.net、delphi、rust 等多种语言。

支持多种访问控制模型,在 casbin,访问控制模型是基于 perm 元模型 (policy, effect, request, matchers) 压缩而成的一个 conf 文件。 因此,项目授权机制的转换或升级就像修改配置一样简单。

灵活的策略储存方式,除了内存和文件外,casbin 策略还可以存储在许多地方。 目前 casbin 已经支持了从 mysql、postgres、oracle 到 mongodb、redis、cassandra、aws s3 等数十种数据库。

跨语言 & 跨平台,casbin 已经使用 golang、java、php 和 node.js 等等语言实现。 所有的实现共享相同的 api 和行为。学习一次即可到处使用。

使用 php-casbin:

安装:

composer update casbin/casbin

快速使用:

  1. 初始化决策器
require_once './vendor/autoload.php';
use casbin\enforcer;
$e = new enforcer("path/to/model.conf", "path/to/policy.csv");
  1. 进行权限决策
$sub = "alice"; // the user that wants to access a resource.
$obj = "data1"; // the resource that is going to be accessed.
$act = "read"; // the operation that the user performs on the resource.
if ($e->enforce($sub, $obj, $act) === true) {
    // permit alice to read data1
} else {
    // deny the request, show an error
}

项目托管仓库github:

本作品采用《cc 协议》,转载必须注明作者和本文链接
讨论数量: 1

在 laravel 中使用:

2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图