Rails 推荐使用 Rails 自带的 has_secure_password 简化注册登录

chenge · 2015年06月28日 · 最后由 darkbaby123 回复于 2015年07月02日 · 3480 次阅读

这个要比 devise 简单十倍。

我看了下文档,这个是从 rails 3 开始有的。我不知道这个,还是从网友的讨论中看到的。属于 ActiveModel 的功能,简单实用。

具体用法我就不写了,文档写得很清楚,不超过一页,简单两三步就可以了。

中小型网站都可以用这个,功能可以增量开发。devise 留给大型网站吧。

devise 不应该留给大型网站,而是留给外包公司,几下弄出注册登录表单,然后不做任何定制或修改的时候才适用。

使用位运算设计权限系统,配合 has_secure_password,扩展性很好,代码逻辑也很清晰,同意 3 楼的见解

#2 楼 @lgn21st 谢谢推荐视频。不过有些卡,看文字好了。

#1 楼 @317583395 谢谢你的博文,很有参考价值。

#1 楼 @317583395 imooc 上有相关的专门的视频比较清晰明了

#8 楼 @rei 看了,文中提到拒绝 rspec,估计会有很多人不同意,我也是倾向于传统的 minitest。

#9 楼 @chenge 我只要在别人抛弃 Rspec 的时候说声“我早就说过了”就足够了。

同推荐 has_secure_password 其实 Rails 的组件里的很多方法都非常好用,也非常灵活。

devise 确实有些功能用不到,还多了限制

最近的项目用 ActiveModel::SecurePassword 和 JWT。做 authentication 和 reset password 都很方便,比 Devise 简单灵活很多。

Rails 默认组件很多都挺好用,比如 ActiveSupport::SecurityUtils 里的 secure_compare 用来对比两个字符串,防止 timing attack。我上面例子里的 JWT 也可以用 ActiveSupport::MessageVerifier 或者 ActiveSupport::MessageEncryptor 来代替。

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