【问题标题】:Devise get user by reset_password_token通过 reset_password_token 设计获取用户
【发布时间】:2014-04-01 16:57:29
【问题描述】:

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

【问题讨论】:

  • 能否分享下你试过的相关代码。请在问题中发布。
  • 你能详细解释一下你的要求吗?

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


【解决方案1】:

假设您的模型是用户:

User.with_reset_password_token(your_token_here)

Source

【讨论】:

  • 你救了我的命!
  • 有人可以选择这个作为答案吗?只投过一次,但在我看来,我已经投过一千次了。
【解决方案2】:

旧版本的设计不包含此方法: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)

我们在示例中使用了用户模型。

【讨论】:

    【解决方案3】:

    要回答您问题的标题,只需

    User.find_by_reset_password_token(reset_password_token_here)
    

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-28
        • 1970-01-01
        • 2022-06-14
        • 1970-01-01
        • 1970-01-01
        • 2018-02-21
        相关资源
        最近更新 更多