Rails devise reset_password_token wird weiterhin als "abgelaufen" gekennzeichnet

8

Ich versuche, das reset_password_token von Devise zu verwenden, um Benutzer zu zwingen, ihr Passwort zu ändern, wenn sie sich das erste Mal anmelden. Dabei benutze ich das, was ich hier gelesen habe: Rails Devise: Setzen Sie das Token zum Zurücksetzen des Passworts und leiten Sie den Benutzer um

Ich komme so weit, dass eine Seite geladen wird, auf der steht "Setze dein Passwort", aber jedes Mal, wenn ich auf "Senden" klicke, gibt es einen Hinweis, dass das reset_password_token abgelaufen ist und um einen neuen anzufordern. Ich habe versucht, reset_password_token auf eine Variable zu setzen, statt über das Benutzerobjekt (@ user.reset_password_token) zuzugreifen, falls Ablaufdatum berechnet wird, wenn dieses Token aufgerufen wurde, aber es sagt immer noch, dass es abgelaufen ist, wenn ich versuche, mein anfängliches Passwort zu setzen. Ich bin mir nicht sicher, wie Ablauf berechnet wird, hat jemand eine Idee?

    
jshou 28.07.2011, 00:57
quelle

1 Antwort

15

Die Antwort gefunden!

Wenn ein reset_password_token generiert wird, @user.reset_password_sent_at muss auf "Time.now" eingestellt werden, oder wenn "Device" ausgeführt wird @user.reset_password_period_valid? , um herauszufinden, ob das Reset-Token ist noch gültig, wird es null und davon ausgehen, dass das Token abgelaufen ist.

    
jshou 28.07.2011, 16:36
quelle

Tags und Links