Golang Go语言中casbin真的好用么
Golang Go语言中casbin真的好用么
利用 casbin 做权限控制,网上一搜都是 casbin。但是真的就我自己用的来讲,我真的觉得 casbin 真的好晦涩难懂,而且那个配置也感觉不是特别好配。想用 casbin 做多租户得数据控制,但我实在理解不了那个数据是如何定义的。感觉其他的框架使用 casbin 也比较基础,用了一点点。
以上只是我的一些个人观点,不知道大家有没有什么好的用法,可以实现这样得功能。
感谢,去学习下
不好, 看着就烦
没用过 casbin, 但是看过。
乍一眼晦涩难懂,但仔细看核心就 2 个,一个是规则模板,一个是数据。规则模板就是你想用什么规则管理权限,ACL,RBAC 等;数据有各种 backend,例如文件,数据库等。
casbin 把权限系统抽象出来了,你可以在你的业务系统中使用不同的 casbin 实例,例如前台业务权限和后台管理权限的管理方法是不同的。当然你也可以抛弃 casbin,在业务代码里自行处理权限。
我是 casbin 作者。说两点:
1 ) casbin 确实很复杂,但是表达能力也很强。如果你的权限需求很复杂,怎么实现都会复杂, 复杂性不可能凭空降低。而 casbin 能够帮你把代码实现上的复杂性,转换为 Casbin 配置上的复杂性,相比而言已经好多了。AWS IAM 类的策略表达能力很捉急。
2 ) casbin 有中文 QQ 群可以答疑,作者也是中国人,群里有些中文资料。如果要用 ladon
等国外的库,答疑成本就高多了
3 ) QQ 群号在 github 最下面
用了,感觉还好吧,看下文档就可以用起来,但如果和系统对接起来,保存在数据库,加上自由配制就麻烦些
实话说,我还是比较倾向楼主的感受。casbin 的文档学术味太浓了,反而具体怎么用,缺少清晰明了无杂音的介绍。
作为近似轮子的对比,sa-token 的文档直接明了,是啥,想达到什么目的,该怎么做,看着目录很快就能找到。
Casbin 我想应该也很强大,但文档中概念术语简写满天飞,伪代码和不完整的样本代码混杂,真的看起来很吃力。
前面作者回答强调本地中文服务的优势,但现在看 casbin 官网中文文档明显的机翻味,而且感觉没校对,policy 一会儿叫策略一会儿叫政策,看起来太别扭了。
再就是右下角销售 James 太敬业了,每次进入页面他都要展开弹窗问我一次🤣
实现一个最基础的基于 owner 资源权限管控的需求都很难入门。隔了几年,好几次回头看还是看不明白。文档基本都在讲资源继承的鉴权…一般场景反而讲的少
1. 模型定义晦涩不直观,p 和 r 还能理解,到了 g 和 e 那块的时候完全就不知道在干啥了。既然 g 的作用是进行 graph 查找,为啥要定义两个 g ,还取名 g2…
2. 设计上没有做责任分离,把各种 policy 混杂在一起,rbac 和 abac 定义混在一起,加重了认知负担
说到底还是配置的表达能力不行,可能它的功能很强大,只是我没弄懂。但是采纳进项目的认知成本太高
作为IT领域Go语言方面的专家,我认为Casbin在Golang项目中确实是一个非常好用的访问控制库。以下是我对Casbin的评价:
- 功能强大:Casbin支持多种访问控制模型,如ACL、RBAC、ABAC等,能够满足不同项目的需求。同时,它提供了灵活的策略定义和匹配机制,能够处理复杂的访问控制需求。
- 易于集成:Casbin易于集成到现有的Go项目中,提供了简洁的API接口和配置方式。开发者可以轻松地将其引入到项目中,实现访问控制功能。
- 性能高效:Casbin在处理授权请求时具有较高的性能,能够快速判断用户是否有权访问特定的资源。这对于高并发环境下的应用来说是非常重要的。
- 社区活跃:Casbin拥有一个活跃的社区和丰富的文档资源,方便开发者快速上手和解决问题。社区中的开发者不断贡献代码和文档,使得Casbin的功能不断完善和扩展。
综上所述,Casbin在Golang项目中是一个非常好用的访问控制库。它提供了强大的功能、易于集成、性能高效以及活跃的社区支持等优势,能够帮助开发者更好地实现项目的访问控制需求。如果你正在寻找一个可靠的访问控制库来增强你的Golang项目安全性,那么Casbin无疑是一个值得考虑的选择。