Gin + Gorm + Casbin 实现权限管理
00 分钟
2024-5-3
2024-11-15
type
status
date
slug
summary
tags
category
password

Gin + Gorm + Casbin 实现权限管理

1:Casbin 概念

1.1:核心概念

1.1.1:Model

1.1.2:Policy

1.1.3:示例

1.2:ACL 模型和 RBAC模型

1.2.1:ACL 模型

1.2.2:RBAC 模型

2:Casbin 库的使用

2.1:Enforcer 执行器概念

2.2:Adapter 适配器概念

2.3:Functions (Matchers 中的函数)

函数
url
模式
keyMatch
一个URL 路径,例如/alice_data/resource1
一个URL 路径或*模式下,例如/alice_data/*
keyMatch2
一个URL 路径,例如/alice_data/resource1
一个URL 路径或:模式下,例如/alice_data/:resource
keyMatch3
一个URL 路径,例如/alice_data/resource1
一个URL 路径或{}模式下,例如/alice_data/{resource}
keyMatch4
一个URL 路径,例如/alice_data/resource1
一个URL 路径或{}模式下,例如/alice_data//{id}/book/{id}
keyMatch5
a URL path like/alice_data/123/?status=1
a URL path, a{}or*pattern like/alice_data/{id}/*
regexMatch
任何字符串
一个正则表达式模式
ipMatch
192.168.2.123这样的IP地址
192.168.2.0/24这样的IP地址或CIDR
globMatch
/alice_data/resource1这样的路径样式路径
/alice_data/*这样的glob模式

2.4:总结

3:Casbin 进阶使用

notion image

3.1:权限配置以及增删改查

3.2:策略和组使用规范

ptype
v0
v1
v2
v3
v4
v5
p
admin
/api/user
GET
p
admin
/api/user
DELETE
p
user
/api/user
GET
g
layzer
admin
g
zhangsan
user

3.3:用户以及组关系的增删改查

3.3.1:获取所有角色组

3.3.2:角色组中添加用户

3.3.3:角色组中删除用户

3.4:角色组权限的增删改查

3.4.1:获取所有角色组权限

3.4.2:创建角色组权限

3.4.3:修改角色组权限

3.4.4:删除角色组权限

3.4.5:验证用户权限

3.4.6:完整代码

notion image

3.4.7:总结

4:Casbin 鉴权中间件

4.1:中间件代码

4.2:使用中间件

4.3:测试中间件的使用

notion image

4.4:添加权限管理 API

上一篇
Karmada Notes
下一篇
Django DRF Notes(第五章)