为什么不应该使用Gem Devise?

Ala*_*man 5 ruby gem ruby-on-rails devise

我是铁杆上的红宝石.相比之下,我的HTML CSS javascript和jQuery相当不错.最近我使用Michael Hartl的这个教程进入ruby轨道:http://ruby.railstutorial.org/ruby-on-rails-tutorial-book .

但唉,我正在尝试构建自己的项目,并使用gem devise作为一种简单的身份验证方式.因为初学者很难进行身份验证.但是,每个人都提到新手不应该使用这个宝石.

为什么菜鸟不应该为自己的项目设计?

感谢任何提示,但我更喜欢冗长的答案.

Rei*_*chs 9

我完全不同意你到目前为止给出的建议,包括其他答案.

滚动您自己的身份验证,尤其是作为初学者,是让您的用户面临风险的好方法.安全(尤其是加密)很难,即使你有经验,你也可能以某种方式弄错了.

如果您想了解基于密码的身份验证的工作原理(您应该这样做),请在空闲时间学习.不要让您的用户不知情的测试科目,并将他们的隐私置于危险之中.

  • 如果你不犯错误,你永远不会学习.使用gem可以帮助您避免错误,但它既不会使您的应用程序更安全,也不会让您成为更好的程序员."编写自己的身份证书是有风险的"是无稽之谈.写auth并不需要天才.Auth建立在抽象库之上; 你不是在重新发明轮子或写密码学.您正在使用API​​.所以在开始认真的应用程序之前,你做了什么?你学习了API.使用Devise会让你在其他地方犯错误.无论有没有Devise,在学习API之前,你仍然是一个无知的程序员. (4认同)
  • 呵呵.看起来像Devise的开发人员不同意你:https://github.com/plataformatec/devise#starting-with-rails (4认同)
  • 我原则上同意.但是还有许多其他因素会让您的用户面临风险.在不了解框架或语言如何工作可能带来相同风险的情况下构建应用程序.我会争辩说,在了解安全性的基本原理之前,不应该构建一个认真的应用程序.使用Devise不会教你这个. (3认同)
  • 所以你的论点是,因为你可以在其他地方犯错误,你不应该在意你是否犯了auth错误? (2认同)

Moh*_*mad 5

除非您打算在没有任何修改的情况下开箱即用Devise,否则使用Devise可能比编写自己的身份验证花费更多时间.

这取决于您的需求有多复杂.例如,您是否需要忘记密码功能,验证功能等...

使用Rails实现自己的身份验证非常简单has_secure_password.知道幕后发生的事情也很有帮助.这是学习过程的一部分,它既简单又有趣.

它实际上需要大约10行代码来编写基本身份验证.正如其他人所说,除非你迫切需要,否则请按照教程进行操作.你将从中学到很多好东西,使用Devise会让你错过很多很棒的信息.

  • 我不同意这个答案.Devise已经内置了10个不同的模块(记忆,忘记密码等),创建这些模块需要花费10多行作为滚动自己的Auth的一部分. (4认同)