我正在使用Devise
和Rails 3
。
我想调用一个函数,该函数将简单地验证用户username
和密码组合是否正确,而无需实际登录该用户。有没有什么方法可以用 Devise 完成这样的事情:
User.authenticate(params[:username], params[:password])
我正在使用Devise
和Rails 3
。
我想调用一个函数,该函数将简单地验证用户username
和密码组合是否正确,而无需实际登录该用户。有没有什么方法可以用 Devise 完成这样的事情:
User.authenticate(params[:username], params[:password])
将用户从数据库中取出:
user = User.find_by_email(params[:email])
然后你可以检查他们的密码:
user.valid_password?(params[:password])
或使用一个衬垫:
User.find_by_email(params[:email]).try(:valid_password?, params[:password])
返回true
或nil
Devise 有两个内置方法可以让你做到这一点:
user = User.find_for_authentication(username: params[:username])
user.valid_password?(params[:password])
好吧,Devise 会自动完成:当用户提交登录信息时,它会为您进行检查。
如果您想要更多控制权,那么您有 2 个选择:
1-查看设计来源,找到它在哪里进行检查
2-编写你自己的登录系统(这并不像你想象的那么难)