设计通过reset_password_token获取用户

时间:2014-04-01 16:57:30

标签: ruby-on-rails ruby devise ruby-on-rails-3.2

我正在尝试创建密码规则来设计可恢复的密码更改。 我通过passwords_controller.rb做了一个超类,但我需要在规则之前检查用户角色,但我所拥有的只有reset_password_token。

4 个答案:

答案 0 :(得分:10)

假设您的模型是用户:

  

User.with_reset_password_token(your_token_here)

Source

答案 1 :(得分:1)

较旧版本的devise不包含此方法:with_reset_password_token(your_token_here)

因此您可以在模型中创建此方法:

def self.with_password_reset_token(password_reset_token)
    generated_password_reset_token = Devise.token_generator.digest(self, :reset_password_token, password_reset_token)
    return self.find_by(reset_password_token: generated_password_reset_token)
  end

然后您可以像下面这样从模型中调用此方法:

user = User.with_password_reset_token(your_token_here)

在此示例中,我们正在使用用户模型。

答案 2 :(得分:0)

要回答问题的标题,只需

User.find_by_reset_password_token(reset_password_token_here)

但除此之外你的问题有点不清楚。

答案 3 :(得分:0)

到这里参加聚会很晚,但是User.find_by(reset_password_token: <token>)也可以。