ruby on rails 4 – idear – send_reset_password_instructions – restablecer contraseña – restablecer el token de contraseña no es válido

Estoy usando la versión de Ruby on Rails ‘4.2.4’ y el dispositivo 4.0.0

gem 'rails', '4.2.4' devise (4.0.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0,  1.2.3) 

Al tomar control de un código hecho por alguien, han implementado la contraseña de restablecimiento pero no han funcionado del todo. Estoy tratando de resolverlo.

Desde la consola, intenté usar esto:

 > u = User.first > u.send_reset_password_instructions 

esta es la salida de la consola:

 [15] pry(main)> u.send_reset_password_instructions Devise::Mailer#reset_password_instructions: processed outbound mail in 37.9ms Sent mail to testme@gmail.com (6024.6ms) Date: Sun, 20 May 2018 12:13:23 +0800 From: "My Support"  Reply-To: "Harta.Org Support"  To: testme@gmail.com Message-ID:  Subject: Reset password instructions Mime-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit 

Hello testme@gmail.com!

Someone has requested a link to change your password. You can do this through the link below.

Change my password

If you didn't request this, please ignore this email.

Your password won't change until you access the link above and create a new one.

=> "qpkCBYwZzmqprudst1oq"

el correo electrónico se recibe, sin embargo, navegue a la página ( http: // localhost: 3000 / users / password / edit? reset_password_token = qpkCBYwZzmqprudst1oq ) e insertar la nueva contraseña tiene este error

 1 error prohibited this user from being saved: Reset password token is invalid 

Comprobé que hay algún token generado en el registro de Usuario:

  reset_password_token: "23837a8b05a8249ac4edf5e3e6b6e8f922277ef409e693cd802bc1707b0838b7", reset_password_sent_at: Sun, 20 May 2018 04:13:23 UTC +00:00, 

esto coincide con la salida de depuración a continuación:

 Started PUT "/users/password" for ::1 at 2018-05-20 12:52:04 +0800 Processing by Devise::PasswordsController#update as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"NtKJ86mslX4tQ7arV+FcO+5dU4BCvD1A0GRzs9YwqG1h+vsdbEh9FXW+VQLJMnNsTXuJ0VMmC+f9v8/uW56CMQ==", "user"=>{"reset_password_token"=>"[FILTERED]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}} localhost Set current domain {"reset_password_token":"23837a8b05a8249ac4edf5e3e6b6e8f922277ef409e693cd802bc1707b0838b7"} Rendered users/shared/_links.html.erb (0.3ms) Rendered users/passwords/edit.html.erb within layouts/application (9.5ms) Rendered layouts/_navigation.html.slim (2.0ms) Rendered layouts/_messages.html.slim (0.1ms) Completed 200 OK in 243ms (Views: 199.9ms | ActiveRecord: 0.0ms) 

¿Cuál es el problema, cómo depurar (como cómo saber si el token es correcto) y resolverlo?

Logro anular Devise :: PasswordsController para cambiar el dispositivo de contraseña en controller / users / password_controller. Sin embargo, quiero depurar esto ahora, recoverable.rb? ¿Cómo puedo anular recupable.rb? Quiero ver cómo funciona en este método:

  def reset_password_by_token(attributes={})