Как реализовать функцию смены пароля для зарегистрированного пользователя в ruby ​​on rails? - PullRequest
2 голосов
/ 12 января 2012

Моя форма будет иметь

Текущий пароль: Новый пароль: Подтвердите новый пароль:

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

У меня есть метод аутентификации, в который я могу передать электронную почту current_user вместе с паролем для подтверждения текущего пароля, но тогда как мне продолжить и обновить с той же формой? Как он узнает, что текущий пароль был подтвержден?

Кажется, что это базовая вещь, но мой разум чувствует, что он достиг дорожного блока.

Советы, советы с благодарностью.

С уважением.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

«Как я могу подтвердить, что текущий пароль правильный, но в той же форме, в которой будет обновлен мой пароль?»

Лучший способ - использовать Devise, Clearance, Authlogic или другой драгоценный камень и использовать примеры для них.

Тем не менее, если вы катитесь самостоятельно, но поменялись паролем, есть несколько способов:

Отправьте форму (отправка стандартной формы) и, если смена пароля сработает, измените то, что вы будете отображать в следующий раз, предпочтительно с помощью простых флагов, установите в контроллере, который управляет тем, что вид отображается в форме представления.

Отправьте форму (ajax) и, если смена пароля работает, используйте javascript (скажем, jQuery), чтобы изменить то, что показывает представление - скрыть поля пароля и показать остальные поля, которые вы хотите, снова установив флаг simlpe для управления отображением ... контроллер. Вы можете использовать rjs для замены_html и т. Д. Нужных вам кусочков.

Для других читателей этого ответа (ФП, вероятно, уже знает это), если пароль хешируется для безопасности, например, MD5, и я предполагаю, что это так, тогда вы не можете знать, что это такое, но вы можете хэшировать попытку и сравнивать с хешированной версией (хранящейся в базе данных), и, если они соответствуют пользователю, при условии, что они совпадают .

1 голос
/ 12 января 2012

Посмотрите это видео: http://railscasts.com/episodes/274-remember-me-reset-password. Оно проведет вас через все с нуля.

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