Rails: заставить всех пользователей менять свои пароли в Devise?

#ruby-on-rails #authentication #devise

#ruby-on-rails #аутентификация #разработать

Вопрос:

Есть ли способ попросить всех пользователей изменить свои пароли при входе в приложение Rails с использованием аутентификации Devise? Другими словами, я хотел бы найти способ «истечения срока действия» пароля, чтобы при следующем входе пользователя в систему ему приходилось его менять.

Ответ №1:

Я не думаю, что Devise может сделать это из коробки, но я думаю, что неплохо сделать это самостоятельно. Что бы я сделал :

  1. При входе пользователя в систему я бы обнулил поле encrypted_password базы данных.

  2. Я бы переопределил контроллер сеанса devise (ответственный за логины), чтобы проверить, является ли encrypted_password пользователя, который пытается войти в систему, равным нулю.

  3. Если бы это было равно нулю, я бы перенаправил их на login, также выдавая ошибку типа «Срок действия вашего пароля истек. Пожалуйста, создайте новый.»

Комментарии:

1. Не забудьте каким-то образом запомнить encrypted_password перед его обнулением, иначе вы пожалеете.