如何使用Devise和Rails 3简单地验证用户名和密码是否正确

时间:2010-07-16 08:52:38

标签: ruby-on-rails-3 devise

我正在使用DeviseRails 3

我想调用一个函数,只需验证用户的username和密码组合是否正确,而无需实际登录该用户。有没有办法用Devise来完成这样的事情:

User.authenticate(params[:username], params[:password])

4 个答案:

答案 0 :(得分:61)

让用户离开数据库:

user = User.find_by_email(params[:email])

然后你可以用以下方法检查他们的密码:

user.valid_password?(params[:password])

答案 1 :(得分:4)

或者使用一个班轮:

User.find_by_email(params[:email]).try(:valid_password?, params[:password])

返回truenil

答案 2 :(得分:0)

官方设计方式

Devise有两个built-in methods可以让你做到这一点:

user = User.find_for_authentication(username: params[:username])
user.valid_password?(params[:password])

答案 3 :(得分:-8)

好吧,Devise自动进行:当用户总结登录信息时,它就会检查你。

如果您想要更多控制权,那么您有两个选择:

1-看看Devise来源找到它进行检查的地方

2-编写自己的登录系统(这并不像你想象的那么难)

相关问题