4

コントローラーに関数を追加しています。唯一の目標は、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を使用してメールを送信しています。トークンの切り捨ての問題ではないと思います。

最新バージョンのdeviseを使用してHeroku杉でrailsアプリケーションを実行しています。

何か案が ?

4

1 に答える 1

1

私はちょうど同じ問題に直面しました。私の場合は が だったからuserですunscoped。その場合、ユーザーが見つからないようです。

これは、Devise ソースの/lib/devise/models/authenticatable.rbの 113 行にあります。

      recoverable = find_or_initialize_with_error_by(:reset_password_token, reset_password_token)

検索しないでくださいunscoped

リポジトリをフォークします。興味がある場合はお知らせください。

于 2013-10-19T01:01:07.807 に答える