设计send_reset_password_instructions不起作用

时间:2013-01-22 14:32:56

标签: ruby-on-rails heroku devise

我在我的控制器中添加了一个功能,唯一的目标是通过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雪松上运行rails应用程序。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

第113行/lib/devise/models/authenticatable.rb中的设计来源

      recoverable = find_or_initialize_with_error_by(:reset_password_token, reset_password_token)

不搜索unscoped

我会分发回购,如果您有兴趣,请告诉我。