瞎扯淡 Devise 超热门,但有可以取代的 gem 吗?

charlie_hsieh · 2022年06月13日 · 最后由 ecnelises 回复于 2022年08月14日 · 1095 次阅读

请问有没有其他想法或心得可以分享?

devise 的代码抽象得实在是很难看懂。我提倡自己写,就几个固定的控制器的事,后面可以用模板或者 generator 抽出来,供以后其它的项目快速复用。

我自己写的。

我之前也是自己写,在和第三方 gem avo 集成时,发生 current_user not found。我已经写进 application_controller,还是不行。最后还是用 devise, 和其它 gem 比较容易配合。

devise 的配套插件挺多的,教程也多

devise 这么多年了,上手难度是有点,但你说真的毛病,还真没有,如果硬要说有就是 Elixir 之父写的,当年有点练 Magic/Meta programming 走火入魔了点,用的稍微过分了一些。

自己写最好,可定制性强

按 Reddit 创始人的说法:"just use the d*mn library". Devise 在 Rails 6 的时候不得不承认是很好用的,一两天就能搞懂基本用法,比如密码登录发邮件之类的。Rails7 加了 Hotwire 之后,devise 的作者一直没处理这些 Turbo 引入的不匹配情形,虽然已经有很多人比如 Go rails 的 Chris 和其他人 patch 了一下之后能用了,但是还是不够 out of box. 我个人目前在用 Sorcery 做简单的密码认证登录,我之前还录过一个小视频介绍, 你可以试试 sorcery 满不满足你的需求。高安全要求也许没那么重要,真的做到那种程度的时候你应该会有一个 Team 专门做认证系统了,在那之前我个人觉得“build the features users really want, just use the d*mn library"比较经济。

FinnG 回复

你说的没错,我也是因为 Turbo 问题,才开始思考其他的 gem,也是希望,使用 gem 就要能 out of box。感谢分享!!

现在用 phone + code 登录真的很容易实现了

自己实现还是太麻烦了,感觉跟我用 Rails 的初衷相违背,我现在是直接在用到的 Form 上禁用 turbo

需要 登录 后方可回复, 如果你还没有账号请 注册新账号