在Rails中处理用户认证的更好方法

说到Rails中的认证,大多数开发者会选择Devise。然而,有一种替代方法可以给你更多控制权:Authentication Zero

Authentication Zero是一个生成器,它直接在你的应用程序中创建认证代码。与将认证抽象到gem中的Devise不同,Authentication Zero给你可以拥有和自定义的代码。

为什么选择Authentication Zero?

  • 完全控制 - 代码在你的应用中,而不是隐藏在gem里
  • 易于自定义 - 修改认证流程的任何部分
  • 没有魔法 - 你可以阅读和理解每一行
  • 现代功能 - 支持无密码、WebAuthn等

开始使用

添加到你的Gemfile:

gem "authentication-zero"

然后生成:

rails generate authentication
rails db:migrate

这将创建:

  • 带有安全密码的User模型
  • Sessions控制器
  • 密码重置功能
  • 邮箱验证
  • 可自定义的视图

结果

你得到一个完整的认证系统,代码归你所有。需要添加双因素认证?修改登录流程?添加社交登录?代码就在那里。

查看Authentication Zero仓库了解更多详情。