ruby-on-rails-3 - Rails 身份验证 - *不*使用 Devise 时的潜在陷阱?

标签 ruby-on-rails-3 devise

我正在权衡是推出自己的身份验证系统(如优秀的 Railscast )还是使用 Devise。

我的问题是,当不使用 Devise 而是按照 Railscast 进行操作时,潜在的陷阱是什么?我需要考虑的安全问题是否在 Actor 阵容中尚未涵盖?您还能想到其他陷阱吗?

编辑:为什么我考虑不使用 Devise?我回避 Devise 的部分原因是因为我不喜欢它的登录失败保护功能。 Devise 的做法意味着任何人只要知道自己的电子邮件地址就可以锁定其他人的帐户。在我看来,总的来说,我最好自己动手,而不是彻底了解 Devise 来做出这些改变,特别是如果我在将来的某个时候也需要以自己的方式做其他事情的话(这似乎是可能的)。

最佳答案

对于基本身份验证(这意味着只需拥有用户名和密码),推出您自己的身份验证不会有任何严重的陷阱。

现在,如果您也想要:

  • 用于记住登录用户的 Cookie
  • 通过发送包含重置说明的电子邮件来恢复忘记的密码
  • 需要电子邮件确认才能注册
  • 在特定时间段内没有事件的用户 session 超时

现在这些实现起来会有点困难。

因此,如果您只想要一个基本的身份验证系统,您可以愉快地使用自己的身份验证系统。但如果您担心应用程序的 future ,那么也许您应该选择 Devise。这并不难理解,它提供了大量功能,以后当您真正决定使用 Devise 时,无需迁移数据。

编辑:所以,重申一下我所说的。如果这是一个宠物项目,并且您只想拥有一个基本的身份验证系统和授权系统,只允许某些用户查看某些页面,那么您可以自由地实现自己的项目并边学习边进行。

但是,如果这是更严重的事情,那么我认为您没有任何理由不应该选择 Devise。它让我想起人们创建自己的哈希和加密方案,而他们可以(并且应该!)只使用像 bcrypt 这样强大且安全的东西。

关于ruby-on-rails-3 - Rails 身份验证 - *不*使用 Devise 时的潜在陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164492/

相关文章:

ruby-on-rails - Rails for ActionMailer - 如何禁用某个邮件程序的布局

ruby-on-rails - rails 重定向到 'data:,'

ruby-on-rails - rails : how to show user's "last seen at" time?

ruby-on-rails - 如何将当前user_id自动添加到另一个表中?

ruby-on-rails - devise.en.yml 文件内的变量

ruby-on-rails - 解析 gemfile 并获取 rails 项目中使用的所有 gem

ruby-on-rails - 以非线程安全的方式“sass”

ruby-on-rails - 如何在Rails Admin中隐藏添加新选项

ruby-on-rails - 如果电子邮件已被占用,则 Rails 需要注册或登录

ruby-on-rails - rails 4 : How to translate devise view?