Rails devise reset_password_token продолжает помечаться как "просроченный" - PullRequest
8 голосов
/ 28 июля 2011

Я пытаюсь использовать devise reset_password_token, чтобы заставить пользователей менять свой пароль при первом входе в систему, используя то, что я прочитал здесь: Rails Devise: установить маркер сброса пароля и перенаправить пользователя

Я дошел до загрузки страницы с надписью «установить свой пароль», но каждый раз, когда я нажимаю «Отправить», появляется уведомление, в котором говорится, что срок действия reset_password_token истек, и запрашивать новый.Я попытался установить reset_password_token для переменной вместо доступа через пользовательский объект (@ user.reset_password_token), в случае, если срок действия рассчитывается, если к этому токену обращались, но он все еще говорит, что он истек, когда я пытаюсь установить свой первоначальный пароль.Я не уверен, как рассчитывается срок годности, у кого-нибудь есть идея?

1 Ответ

16 голосов
/ 28 июля 2011

Найден ответ!

Когда генерируется reset_password_token, для @user.reset_password_sent_at необходимо установить значение Time.now, или же когда devise запускает @user.reset_password_period_valid?, чтобы узнать, действителен ли токен сброса,он получит ноль и предположит, что токен истек.

...