Да, с помощью authlogic можно установить условные проверки. В вашей пользовательской модели вы можете иметь:
class User < ActiveRecord::Base
acts_as_authentic do |config|
config.merge_validates_format_of_login_field_options {:if => :do_validation}
end
где: do_validation - это метод в User, который возвращает true или false в зависимости от определенного вами условия. Есть и другие крючки, которые вы можете использовать. См. http://www.rubydox.net/class/authlogic/2.1.3/Authlogic::ActsAsAuthentic::Login::Config для информации, связанной с этим примером. Вы можете сделать аналогичные вещи для поля пароля.
Пожалуйста, обратите внимание, что приведенный выше пример кода взят из памяти, поскольку я не в том месте, где я могу сослаться на свой собственный источник, в котором я сделал именно это. Завтра я проверю, когда вернусь на работу, и при необходимости исправлю.
ОБНОВЛЕНИЕ Я подтвердил, что мой пример кода верен. Также может быть полезно отметить, что любой из стандартных параметров RoR для validates_format_of может быть объединен с этим конкретным параметром конфигурации authlogic. http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M001401