GO 权限管理之 Casbin

gjsonjson
jsongjsongjsongjsongjsonjson 行gjsongjson
gjson
Casbin

权限管理是什么?

一般指根据系统设置的安全规则或者安全策略
用户可以访问而且只能访问自己被授权的资源,不多不少刚刚好
权限管理几乎出现在任何系统里面
用户身份认证密码加密系统管理
  • 用户身份认证

不属于权限管理范畴

用户身份认证指的是通过某种凭证来证明自己的身份,例如账号密码,指纹,人脸识别等等

  • 系统管理

是系统中的一个模块,该模块一般还含有权限管理子模块 , 该模块相当于给权限管理模块提供了一些数据

  • 密码加密

也是不属于权限管理范畴 , 他只是用户身份认证领域的一个部分

Casbin 是个啥?

casbin
RBACABACACL
casbincasbin

咱们来看看 Casbin 有啥特性

{subject, object, action}

我们也可以自定义,同时他支持允许授权和拒绝授权

RBAC
rootadministrator
  • 支持多个内置运算符规则匹配
hello/worldhello*模式
  • 不支持身份验证
  • 不支持管理用户或角色列表
Casbin
CasbinPERM
  • 策略
  • 效果
  • 请求
  • 匹配器
ACLCONF
ACL

咱们来写一个DEMO

main.gogincasbinrbac_models.conf
/api/v1/hello
xd.NewAdapter
"github.com/casbin/xorm-adapter"adapter.go
casbin.NewEnforcer
"github.com/casbin/casbin"enforcer.go
NewEnforcerenforcer

上述代码,大家感兴趣的话,可以将代码贴到自己的环境中

postmanmysql
gin拦截器

总结

  • 分享了权限管理是什么
  • Casbin 是什么
  • Casbin 的特性
  • Casbin 的应用案例

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里,下一次 工作中后端是如何将API提供出去的?swaggo很不错

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是小魔童哪吒,欢迎点赞关注收藏,下次见~