0
は、私の(カスタム)メーラは、この行があります:Rails + Devise "パスワードトークンのリセットが無効です" - トークンがdbトークンと一致しています...?パスワードをリセットしようと
edit_user_password_url(@user, reset_password_token: @user.reset_password_token)
をそして、それは、このようなリンクを作成します。
http://fixit-rails.dev//users/password/edit.6?reset_password_token=13f76244d39b0dfb9746674058a45559280358b99c1fdc36c6b9af2de2ba6376
、ユーザーが次のreset_password_token
を持つデータベース内の:
13f76244d39b0dfb9746674058a45559280358b99c1fdc36c6b9af2de2ba6376
ユーザーは新しいパスワード画面に正常に移動できますが、[送信]をクリックするとエラーメッセージはと表示されます
なぜ、deviseはトークンを認識しませんか?
UPDATE
私は次のコードでトークンを作成します。
def generate_reset_password_token
raw, enc = Devise.token_generator.generate(User, :reset_password_token)
self.reset_password_token = enc
self.reset_password_sent_at = Time.now.utc
self.save(validate: false)
end
あなたの電子メールテンプレートでは@token not @ user.reset_password_tokenにする必要があります。 'edit_user_password_url(@user、reset_password_token:@token)' –
@tokenは存在しません。どうすれば作成できますか?私はカスタムメーラーであり、Deviseのものではありません。 – Mirror318
コントローラでトークンを設定し、可能であればリセットパスワードの電子メールを送信するコードを共有できますか? –