#Rails中打造用户认证系统
相信很多人都知道或者用过Devise这个gem,它在github上有将近1w3的star。但是它十分庞大和复杂,代码很难读懂,据说想学习Rails源码的话可以先看Devise的源码。使用Devise最大的问题就是定制比较困难,需要搜索文档后覆盖一些方法,但是却不知道原理。
其实实现用户认证并不复杂,完全可以从头写一个,没必要使用gem来实现。Rails的ActiveModel里面有SecurePassword,用它可以很容易的实现认证功能。本文使用Rails的SecurePassword 一步步完善用户认证系统。
##Model
首先使用 $rails g model users email:string password_digest:string
新建一个User model,有email和password_digest两个字段。其中password_digest很重要的,是存放加密后的密码的字段。
接下来需要在 User 中调用 has_secure_password 方法。