как сопоставить старый пароль?

Я пытаюсь следовать советам здесь - Rails 3/Devise: Соль для пароля больше не создается?

Но ничего из этого не работает - и valid_password?, и password_digest. password_digest получает защищенный метод, а valid_password? возвращает пустой.

Когда мой пользователь меняет свой пароль, я позволяю ему ввести старый пароль, и если он совпадает с зашифрованным паролем в базе данных, я обновлю пароль пользователя.


person David    schedule 07.03.2012    source источник
comment
Какую версию Devise вы используете? Какой шифратор вы используете?   -  person Rodrigo Flores    schedule 08.03.2012
comment
я использую 1.4.2 - я не уверен, какой шифратор он использует, не могли бы вы сказать мне, как это узнать и как его использовать, чтобы я мог зашифровать введенный пользователем старый пароль?   -  person David    schedule 16.03.2012


Ответы (1)


чтобы пользователь мог ввести исходный пароль, просто добавьте :current_password в параметры, а затем используйте @user.update_with_password(params[:user]) для обновления с проверкой текущего пароля.

<div class="field">
<%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %>
</div>
person Andy Wang    schedule 23.08.2013