#ruby-on-rails #authentication #devise
#ruby-on-rails #аутентификация #разработать
Вопрос:
Есть ли способ попросить всех пользователей изменить свои пароли при входе в приложение Rails с использованием аутентификации Devise? Другими словами, я хотел бы найти способ «истечения срока действия» пароля, чтобы при следующем входе пользователя в систему ему приходилось его менять.
Ответ №1:
Я не думаю, что Devise может сделать это из коробки, но я думаю, что неплохо сделать это самостоятельно. Что бы я сделал :
-
При входе пользователя в систему я бы обнулил поле encrypted_password базы данных.
-
Я бы переопределил контроллер сеанса devise (ответственный за логины), чтобы проверить, является ли encrypted_password пользователя, который пытается войти в систему, равным нулю.
-
Если бы это было равно нулю, я бы перенаправил их на login, также выдавая ошибку типа «Срок действия вашего пароля истек. Пожалуйста, создайте новый.»
Комментарии:
1. Не забудьте каким-то образом запомнить encrypted_password перед его обнулением, иначе вы пожалеете.