В Rails 3.2 has_secure_password молча терпит неудачу при развертывании в Heroku - PullRequest
0 голосов
/ 28 января 2012

Я обновил аутентификацию в своем приложении, чтобы использовать функцию has_secure_password в Rails 3.1. В процессе я создал страницу, позволяющую пользователям менять свои пароли. Я протестировал его, и он работает на моей машине разработки, как в среде разработки, так и в производственной среде.

Когда я развернул приложение в Heroku, я попробовал его, и, похоже, оно работало, за исключением того, что когда я вышел из системы и снова вошел в нее, мой пароль не изменился. Я попытался изменить пароль вручную в консоли, и это прекрасно работает. Если я пытаюсь ввести другой текст для пароля и подтверждения, он показывает правильность проверки, что означает, что пароль правильно отправляется в приложение.

Вот соответствующее изменение в моем контроллере: https://github.com/mjm/sis-lunch/commit/930ced467a0e23ad48f4497999183112c5f846b1#diff-2

Есть что-то, что я пропускаю? Что может быть не так с ним в производстве на Heroku, что может привести к тому, что это молча провалится?

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Мне кажется, я понял это.Я развернул приложение в Heroku, а затем запустил миграцию.Приложение не было полностью осведомлено о новом столбце password_digest, но новые консоли были, поэтому они работали нормальноПерезапуск приложения с помощью heroku restart исправил его.

0 голосов
/ 28 января 2012

Я не уверен, как вы тестируете его на своем компьютере разработчика, поскольку PeopleControllerTest пуст, но поле пароля защищено от массового назначения. не должно работать в PeopleController так, как оно написано.(это хорошо!)

Вам необходимо явно вызвать Person # password = в вашем контроллере.

Соответствующий исходный код Rails для ActiveModel:: SecurePassword может точно показать вам, что происходит, когда вы используете has_secure_password.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...