Пароль Authlogic недействителен ошибка

Я получаю аналогичную ошибку в этом сообщении Пароль аутентификации Ruby on Rails недействителен «Пароль недействителен», который, казалось, никогда не был разрешен

в скрипте / консоли, если я создам нового пользователя:

myval = "[email protected]"
u = User.create(:email => myval, :password => myval, :password_confirmation => myval)
u.valid? 
>> true
u.save
>> true
u.valid_password?(myval)
>>false

если я установил в свой user.rb:

acts_as_authentic  do |c|
   c.validate_password_field = false
end

я получаю такой же ответ. Какие-либо предложения?


person Schneems    schedule 03.10.2009    source источник
comment
Никогда не забывайте проверять свои миграции, а когда ничего не помогает, найдите проект, который работает и работает в обратном направлении. Я использовал странное сочетание аутентификации и спокойной миграции.   -  person Schneems    schedule 04.10.2009
comment
Помог ли мой ответ вам разобраться в этой проблеме? Если да, пожалуйста, примите его (и переоцените, если хотите). На данный момент из 7 заданных вами вопросов вы еще не приняли ответа ни на один из них.   -  person Peter Wagenet    schedule 05.10.2009
comment
Увы, у меня нет необходимых 15 баллов, чтобы проголосовать за вас, но если кто-то еще зайдет на этот пост, не могли бы вы отдать должное Петру. Если только я не пропустил какую-то скрытую кнопку принятия решения.   -  person Schneems    schedule 06.10.2009


Ответы (4)


Я только что покопался в коде AuthLogic, и похоже, что установка validate_password_field на false только не позволяет Rails запускать проверки по умолчанию. Это не влияет на метод valid_password?.

Есть ряд других факторов, которые, по-видимому, вызывают возвращение false. К ним относятся, но не ограничиваются:

  • Проверка пустого пароля
  • Зашифрованный пароль пуст
  • Пароль не совпадает. (Это немного сложно, потому что здесь задействовано множество факторов, включая CryptoProvider и то, используете ли вы пароли в стиле RestfulAuthentication или нет.)

Чтобы дать более определенный ответ, мне, вероятно, понадобится дополнительная информация о вашей точной настройке.

person Peter Wagenet    schedule 04.10.2009

У меня была аналогичная проблема, оказалось, что старые поля пароля Restful Authentication переносятся на 40 символов в длину, когда Authlogic требует 255.

person Paul Sturgess    schedule 23.12.2009
comment
Спасибо тебе за это! У меня была та же проблема, и у меня заканчивались идеи ... Обновление моего поля БД с 40 до 255 помогло. - person fredw; 14.04.2011

В моем случае это была просто беспорядочная миграция базы данных. rake db:migrate VERSION=0 && rake db:migrate решил эту проблему за меня.

person dStulle    schedule 06.11.2010

попробуйте отметить "before_save: encrypt_password" в user.rb, если у вас есть.

#  before_save :encrypt_password
person cactis    schedule 05.02.2010