在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仓库了解更多详情。