清除:更改用户密码

时间:2015-05-20 11:11:29

标签: ruby-on-rails clearance

我正在使用gem clearance进行用户身份验证,但现在我遇到了实施“更改密码”的问题。链接。这就是我所拥有的:

    <a href="<%= edit_user_password_path(current_user) %>">...</a>

但在Clearance::passwords_controller我们有以下内容:

    before_filter :forbid_missing_token, only: [:edit, :update]
    ...
      def forbid_missing_token
        if params[:token].to_s.blank?
          flash_failure_when_forbidden
          render template: 'passwords/new'
        end
      end

因此,它会呈现new模板,而不是edit。这是:token的用途是什么?如何将其传递给控制器​​?我在哪里可以得到它?

1 个答案:

答案 0 :(得分:1)

令牌是密码重置令牌。该编辑密码页面旨在供用户用来完成忘记密码&#34;流程。当用户点击“忘记密码”时,会生成密码重置令牌。并提供他们的电子邮件地址它存储在用户记录中。

用户收到一封电子邮件,将其链接到编辑密码页面。重置令牌作为参数包含在该链接中。

我认为这里使用的资源名称(password)具有误导性。我认为可能更准确地password_reset可以消除这种混乱。<preference name="KeyboardDisplayRequiresUserAction" value="false" /> <feature name="Keyboard"> <param name="ios-package" value="IonicKeyboard" onload="true" /> </feature> 如果您想要实施标准密码更改表(而不是密码重置),我建议使用单独的控制器。