有什么类似 casdoor 的开源认证系统推荐吗?

2022-08-04 09:28:02 +08:00
 lingly02
一直想找一个开源认证平台,可以稍做改造后用于自己的项目。不想重复造轮子。 初步研究了一下前几天论坛里发的 casdoor,发现还是有一些问题,想找下有没有更好的。

casdoor 的主要问题有(只是粗略看了一下,下面描述如有错误,欢迎批评指正):
1. 代码编写比较随意,几乎没有注释,大部分代码没有单元测试,不利于二次开发。
2. 代码扩展性一般,很多内容是硬编码的。比如想增加一个 sms 提供商,至少需要修改 go-sms-sender, casdoor 后端,casdoor Web 端三处代码。
3. 数据模型极不合理,尤其是主键大量使用组合索引,关联表也不使用外键,而是直接使用字符串字段存储 name ,导致修改一个主表,还需要 update 相关子表。不知道这是遵循一种什么样的建模理论。
4. 组织没有层次结构,不能满足大部分企业应用需求。
5. 为什么一个认证平台要加入商品与支付功能?
6810 次点击
所在节点    程序员
57 条回复
windyboy
2022-08-04 23:08:39 +08:00
waltcow
2022-08-05 10:55:13 +08:00
@Casbin 用了一段时间来反馈一下
1. 代码质量非常堪忧,简单的 typo 我都发现了两处了 https://github.com/casdoor/casdoor/pulls?q=typo
2. sql 数据模型极不合理,组合主键为业务代理很多不必要的麻烦
logto
2022-08-05 13:44:59 +08:00
@Aloento #34 请问使用 Node.js 的话会有什么问题呢,愿闻其详
@shanghai1998 #35 这个我们还没尝试过哈。如果你在使用过程中遇到问题的话欢迎随时和我们联系~
@wangxiaoaer #40 嗯嗯,目前技术层面是支持的,就是还没有产品化,我们还在研究当中。欢迎加入 discord ,我们会随时 post 新动态~
wangxiaoaer
2022-08-05 14:40:20 +08:00
@logto 问题反馈是以 github issue 为主吗?
logto
2022-08-05 14:46:30 +08:00
@wangxiaoaer #44 discussion, issues, discord 都可以的哈。我们就不占用 OP 的帖子了~
lingly02
2022-08-05 16:48:13 +08:00
@Casbin 感谢回作者回复,希望 casdoor 能越来越完善,毕竟 casbin 这一套权限管理框架的理念还是很不错的。
PS:很多开源项目一开始的实现也不是很优雅,后面随着逐渐的重构就越来越好。
Aloento
2022-08-05 18:28:38 +08:00
@logto 鄙人不才,只是如果我自己做相关产品的话不会使用 JS ,您就当我在瞎扯就好
wely
2022-08-16 11:37:34 +08:00
ArkID 应该能满足你的需求, 可以看看
sekfung
2022-09-24 13:04:28 +08:00
@waltcow 真的不能再同意了。我用的时间也比较长了,代码质量真的非常堪忧,现在社区维护的主力还是一群大学生。发版速度简直令人发指,而且经常有数据库字段不兼容的变动,还不能随便升级,动不动就要手动改数据库,前端后端 typo ,硬编码的地方随处可见,错误随便定义,返回给前端根本做不了国际化,这一点真的无法忍受,防暴力破解也没有,扩展性极差,大量的 if else 。除非是个人随便玩玩,否则不建议在生产环境部署
waltcow
2022-09-26 09:38:19 +08:00
@logto nodejs 和 CloudNative 貌似有点格格不入的样子
waltcow
2022-09-26 09:46:36 +08:00
@sekfung 前端 控制台 和 sso 登录用的 web 竟然不做入口区分,前端加载慢的不行。 这东西感觉就是毕设玩具一样,哪有人敢拿来商用。
logto
2022-09-26 12:45:56 +08:00
@waltcow #50 愿闻其详
waltcow
2022-09-26 14:42:43 +08:00
@logto 也用了一段时间的 beta 版本,说一下感受吧

1. 代码很多 ts 的高级用法,在我看来感觉为了单纯满足类型检查而耗费的时间比业务逻辑还要多
2. 分了很多 packages ,在工程管理依赖上新手入门可能遇到比较多的问题
3. 在生产环境中使用没有多机部署的方案,在保证可用性上没有太多的保障


优点:
1. 社区还是比较热情的,一些疑问 /bug/feature 都会有人在 issue/discord 中回答
2. all in js , 对于前端想跨界搞全栈开源的人来说提供了工程化实践的 best practise
sekfung
2022-09-26 20:32:51 +08:00
@waltcow 唉 一开始没仔细调研 加上一波轰炸的宣传 对他印象比较深刻 我们一开始用 keycloak 的 后来觉得太重了而且本土化也不够好 casdoor 一开始用得挺好的 开箱即用 但是要二开的时候 简直痛不欲生 刚推倒完 api 和错误返回 返回的 api 数据格式都没有完全统一的 总的来说 国内有开源的 sso 方案还是挺好的 我也支持开源 casdoor 适合那些开箱即用的用户吧 要二开的话慎重再慎重
logto
2022-09-27 12:58:46 +08:00
@waltcow #53 谢谢您的肯定!
回应一下感受:
1. 类型都是开发过程中的一些约束,为了更好的代码质量。我们在类型上花的时间并不算多哈,基本都是顺手写上了。
2. 我们用的是通用的 monorepo 的实践,之前写过一篇文章 https://www.v2ex.com/t/871408 有兴趣可以看看。
3. 提供 HA 相关的配置文件在我们的 roadmap 里面了,也有社区的小伙伴自己成功部署了,可以交流交流~


@sekfung #54 可以试试我们的产品,有问题欢迎随时沟通 :-)
waltcow
2022-09-28 14:46:40 +08:00
@sekfung https://github.com/zitadel/zitadel 最近看了下这个,一些国内平台的 connector 可能暂时还没有,如果二开定制难度应该还好,代码扫了下质量相当 OK
sekfung
2022-10-03 22:35:34 +08:00
@waltcow 这我之前看过,好像不支持 mysql...连 PG 都是 beta 阶段...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX