ruby on rails -清除:更改用户密码



我使用gem清除用户身份验证,但现在我遇到了实现'更改密码'链接的问题。这是我的文件:

    <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是干什么用的?我如何将它传递给控制器?我在哪里可以买到?

该令牌为密码重置令牌。编辑密码页面的目的是让用户完成"忘记密码"的工作流程。当用户单击"忘记密码"并提供其电子邮件地址时,将生成密码重置令牌。它存储在用户记录中。

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

我认为这里使用的资源名称(password)是误导性的。我认为更准确的是password_reset,这可能会消除这种混淆。如果你想实现一个标准的密码更改表单(而不是密码重置),我建议一个单独的控制器。

相关内容

  • 没有找到相关文章

最新更新