Необязательное подтверждение пароля в has_secure_password - PullRequest
3 голосов
/ 02 апреля 2012

Можно ли отключить подтверждение пароля в bcrypt-ruby (has_secure_password) gem?

Ответы [ 3 ]

5 голосов
/ 03 апреля 2012

Изменить пароль проверка работоспособности только в создать действие.

validates :password, presence: true,
                     length: { minimum: 6 },
                     on: :create
2 голосов
/ 14 апреля 2013

Если вы вообще не хотите подтверждать пароль, вы можете просто не устанавливать поле: password_confirmation, и аутентификация не будет запущена.

Узнайте больше здесь: https://github.com/rails/rails/pull/5131

Rails 4 edit : С момента появления сильных параметров это уже не актуально. Просто удалите поле подтверждения из формы регистрации, и параметр не будет передан.

0 голосов
/ 02 апреля 2012

has_secure_password на самом деле является частью ActiveModel и не является самоцветом.Gem bcrypt просто используется для хэширования атрибута password_digest.

Метод has_secure_password на самом деле очень короткий ( источник здесь ) и содержит одну строку, требующую подтверждения пароля:

# File activemodel/lib/active_model/secure_password.rb, line 34
  validates_confirmation_of :password
  validates_presence_of     :password_digest

Итак, переопределение метода has_secure_password путем создания модифицированной версии в папке config / initializer должно работать.Закомментирование строки validates_confirmation_of отключит подтверждение пароля.Конечно, вы также можете переписать метод, чтобы использовать хеш опций, как вы пытались сделать в своем вопросе.

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