Rails authentication-zero 是 devise 良好替代

Rei · 2024年05月14日 · 最后由 hellorails 回复于 2024年05月14日 · 456 次阅读

首先 Rails 8 也许会增加一个用户认证生成器,用来生成基本的用户注册、登录机制。 https://github.com/rails/rails/issues/50446

然后我看了评论提及的现有的生成器 https://github.com/lazaronixon/authentication-zero

新项目试用了一下,生成的代码非常简洁,跟我自己写的差不多了,避免了手工复制自己的代码。

为什么不推荐 devise,理由:

  • 内部逻辑非常抽象,改起来很困难。
  • 定制的时候需要把控制器和模版复制到项目中,那么就跟生成器差不多了。

所以在 Rails 8 自带的生成器出来前,可以先用着 authentication-zero。

原来有认证相关的 gem 啊😅 , 几年前找过没咋找到。

同不推荐 devise, 多年前写过的一个 graphql 项目用了 graphql-devise, 上游依赖了 devise-token-auth 和 devise, 需要扩展功能的时候和 debug 的时候,需要把这几个 gem 的文档查一遍才好下手,而且在 devise 的基础上写的代码总是相当的不直观。自己搞熟了还将就能用,但是组里的新人在面对这一套东西会非常迷茫,学习成本相当高。后来在集成 oauth 的时候觉得这一套东西实在太重太卡手干脆就自己写了。

这个很赞。 devise 很强大,但有些过度抽象,真正有自己需求时很难调整。 完全自己手写安全性又很难保证。一个强大的脚手架是很好的解决方案。

一开始我也是用 devise,改起来是很麻烦,还得去看源代码才能理解。简单的项目我就自己写了,需要更多功能,我就用 Rodauth 的 rodauth-rails

Rodauth 功能很多,新手可能有难度。

脚手架的逻辑,很好

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