【问题标题】:Devise send_reset_password_instructions does not work设计 send_reset_password_instructions 不起作用
【发布时间】:2013-01-22 14:32:55
【问题描述】:

我在我的控制器中添加一个函数,唯一的目标是通过 API 请求触发忘记密码过程。

这里是reset_password方法-

  def reset_password
    @user = User.find_by_email(params[:email])
    @user.send_reset_password_instructions
    respond_to do |format|
      format.xml  { render :xml => user_api_ressource(@user, :xml)}
      format.json  { render :json => user_api_ressource(@user, :json)}
    end
  end

我收到带有重置密码链接的邮件,它打开了我可以设置新密码的页面,但是当我提交表单时它说令牌无效。

我正在使用 sendgrid 发送电子邮件。我认为这不是令牌截断问题。

我正在使用最新版本的设计在 Heroku cedar 上运行 rails 应用程序。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails heroku devise


    【解决方案1】:

    我刚刚遇到了同样的问题。就我而言,这是因为userunscoped。在那种情况下似乎没有找不到用户。

    它位于第 113 行 /lib/devise/models/authenticatable.rb 的设计源代码中

          recoverable = find_or_initialize_with_error_by(:reset_password_token, reset_password_token)
    

    不搜索unscoped

    我会 fork 回购,如果你也有兴趣,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2023-03-16
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多