проверка формата пароля в Authlogic

Существует ли способ заставить Authlogic проверять формат пароля, например, должен содержать по крайней мере одну букву и по крайней мере одно число? Пропуск a validates_format_of_password_options метод, который будет использоваться в acts_as_authentic блок конфигурации, кажется, указывает, что Authlogic имеет мнение, что не нужно налагать такое ограничение на пользователей.

Я думал, что просто вставлю нормальный ActiveRecord validates_format_of :password, но это означает это a current_user возразите, что я создаю, по сути недопустимо, поскольку я не могу получить незашифрованный пароль (и не сохранил бы его в том объекте, даже если я мог!). После обнаружения, что мой current_user недопустимо, Rails или Authlogic (не уверенный, который, так как я довольно плохо знаком с обоими) направляет меня к моей 'пользовательской странице' редактирования с ошибкой проверки для ее пароля.

6
задан hynkle 2 February 2010 в 19:07
поделиться

2 ответа

Вы можете использовать параметры конфигурации, заданные ACTS_AS_AUTHENTIC, например:

    # Configuration is easy:
    #
    #   acts_as_authentic do |c|
    #     c.my_configuration_option = my_value
    #   end
    #
    # See the various sub modules for the configuration they provide.

Если вы перейдете к модулям в GEM, вы можете увидеть дополнительные параметры, которые они предоставляют. Например, если я хочу изменить параметры по умолчанию Vavormation Vavormation Vavelation:

acts_as_authentic do |c|
 c.merge_validates_length_of_password_field_options({:minimum => 3})
end

Вы можете заглянуть в папку ACTS_AS_AUTHENTIC в своих «(GEMS || плагинов) / authLogic / acts_as_auteentic /" каталог для получения дополнительных вариантов. Ваше здоровье!

3
ответ дан 10 December 2019 в 00:38
поделиться

не требует исправления обезьяны, но не привязан к каким-либо будущим изменениям Authlogic. Просто добавьте это в свою модель пользователя:

validates_format_of: password,: with => / ^ (? =. \ d) (? =. ([az] | [AZ])) ([ \ x20- \ x7E]) {6,40} $ /,: if =>: require_password ?,: message => «должен содержать одну цифру, одну букву и содержать от 6 до 40 символов»

Конечно, вы можете измените регулярное выражение в соответствии со своими потребностями.

7
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: