PHPackages                             xd-casbin/casbin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. xd-casbin/casbin

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

xd-casbin/casbin
================

this is casbin for xdapp

v2.1.4(5y ago)09MITPHP

Since Aug 3Pushed 5y ago1 watchersCompare

[ Source](https://github.com/cxpang/hyperf-casbin)[ Packagist](https://packagist.org/packages/xd-casbin/casbin)[ RSS](/packages/xd-casbin-casbin/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (3)Dependencies (1)Versions (10)Used By (0)

### hyperf-casbin

[](#hyperf-casbin)

`composer require xd-casbin/casbin`

### 准备步骤

[](#准备步骤)

#### 1.创建策略表

[](#1创建策略表)

```
 执行 migration/1_create_auth_rule.sql

```

#### 2.创建收集表（不希望自动收集注解可略过）

[](#2创建收集表不希望自动收集注解可略过)

```
 执行 migration/1_create_casbin_collector.up.sql

```

#### 3.env配置文件

[](#3env配置文件)

```
必要的数据库配置之外
新增 COLLECTOR_OPEN
    true:会将注解自动收集到collector表中
    false:不进行处理

```

### 中间件使用

[](#中间件使用)

#### 1.验证

[](#1验证)

##### 1.1.注解

[](#11注解)

```
 在类内方法中使用
 /**
  * @CasbinCollector(object="cateGoryGet",desc="获取资产分类")
  */
 COLLECTOR_OPEN为true时
 每一次改动都会触发框架的自动收集。
 并且当object改变时，如果auth_rule配置了权限也会同步进行修改。

```

##### 1.2.使用

[](#12使用)

```
 CasbinMiddleware::filterAuth($request,$casbinModelPath);
 $request: Psr\Http\Message\ServerRequestInterface
 $casbinModelPath:casbin模型路径
 中间件会自动进行匹配路由去collect收集器拿到object，加载auth_rule进行判断权限

```

##### 1.3.特别注意

[](#13特别注意)

```
 如果COLLECTOR_OPEN不为true，需要用户手动去auth_rule表正确填写
 此时对应casbin中的
 subject: user
 object:  url
 $action : method

```

#### 2.角色权限接口

[](#2角色权限接口)

##### 2.1 获取用户角色

[](#21-获取用户角色)

```
 /**
      * 获取用户所有角色
      * @param string $userName
      * @param string $confPath
      * @param string $table
      * @return array
      * @throws \Exception
      */
 CasbinMiddleware::getRoleForUser()

```

##### 2.2 获取角色权限

[](#22-获取角色权限)

```
 /**
      * 获取用户所有权限
      * @param string $userName
      * @param string $confPath
      * @param string $table
      * @return array
      * @throws \Exception
      */
 CasbinMiddleware::getPermissionForUser()

```

##### 2.3 增加用户角色

[](#23-增加用户角色)

```
  /**
      * 赋予用户角色
      * @param string $userName g:v0
      * @param string $role g:v1
      * @param string $confPath
      * @return bool
      * @throws \Exception
      */
 CasbinMiddleware::addRoleForUser()

```

##### 2.4 增加角色权限

[](#24-增加角色权限)

```
  /**
      * 赋予用户权限
      * @param string $pName p:v0
      * @param string $object p:v1
      * @param string $action p:v2
      * @param string $confPath
      * @return bool
      * @throws \Exception
      */
 CasbinMiddleware::addPermissonForUser()

```

##### 2.5 删除用户角色

[](#25-删除用户角色)

```
 /**
      * 删除用户角色
      * @param string $userName g:v0
      * @param string $role g:v1
      * @return bool
      * @throws \Exception
      */
 CasbinMiddleware::delRoleForUser()

```

##### 2.6 删除角色权限

[](#26-删除角色权限)

```
 /**
      * 删除用户权限
      * @param string $userName p:v0
      * @param string $object p:v1
      * @param string $action p:v2
      * @return bool
      * @throws \Exception
      */
 CasbinMiddleware::delPermissionForUser()

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

9

Last Release

2067d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/28799684?v=4)[pangchenxu](/maintainers/pangchenxu)[@pangchenxu](https://github.com/pangchenxu)

---

Top Contributors

[![alexxuhub](https://avatars.githubusercontent.com/u/32577472?v=4)](https://github.com/alexxuhub "alexxuhub (1 commits)")

### Embed Badge

![Health badge](/badges/xd-casbin-casbin/health.svg)

```
[![Health](https://phpackages.com/badges/xd-casbin-casbin/health.svg)](https://phpackages.com/packages/xd-casbin-casbin)
```

###  Alternatives

[casbin/laravel-authz

An authorization library that supports access control models like ACL, RBAC, ABAC in Laravel.

324339.9k4](/packages/casbin-laravel-authz)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)[amocrm/amocrm-api-library

amoCRM API Client

182728.5k6](/packages/amocrm-amocrm-api-library)[casbin/think-authz

An authorization library that supports access control models like ACL, RBAC, ABAC for ThinkPHP.

27918.5k6](/packages/casbin-think-authz)[casbin/webman-permission

webman casbin permission plugin

523.4k2](/packages/casbin-webman-permission)[openeuropa/oe_authentication

Authentication against the OpenEuropa Authentication service.

17314.8k2](/packages/openeuropa-oe-authentication)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
