这个要比 devise 简单十倍。
我看了下文档,这个是从 rails 3 开始有的。我不知道这个,还是从网友的讨论中看到的。属于 ActiveModel 的功能,简单实用。
具体用法我就不写了,文档写得很清楚,不超过一页,简单两三步就可以了。
中小型网站都可以用这个,功能可以增量开发。devise 留给大型网站吧。
最近的项目用 ActiveModel::SecurePassword 和 JWT。做 authentication 和 reset password 都很方便,比 Devise 简单灵活很多。
Rails 默认组件很多都挺好用,比如 ActiveSupport::SecurityUtils 里的 secure_compare 用来对比两个字符串,防止 timing attack。我上面例子里的 JWT 也可以用 ActiveSupport::MessageVerifier 或者 ActiveSupport::MessageEncryptor 来代替。