2009-10-03 2 views
1

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

в сценарии/консоли, если я создаю новый пользователь:

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 

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

+0

Никогда не забывайте проверять свои миграции, а когда все остальное не удается найти проект, который работает и работает в обратном направлении. Я использовал странное сочетание аутлогичной и спокойной миграции аутентификации. – Schneems

+0

Помог ли мой ответ в решении этой проблемы? Если да, то, пожалуйста, примите его (и повышайте его, если хотите). До сих пор из 7 вопросов, о которых вы просили, вы еще не приняли ответ ни на один из них. –

+0

Увы, у меня нет необходимых 15 баллов, чтобы проголосовать за вас, если кто-то еще приходит на этот пост, можете ли вы дать ему должное. Если я не пропустил какую-то скрытую кнопку «принять решение». – Schneems

ответ

4

Я только что прочитал код AuthLogic и выглядит так: validate_password_field - false только позволяет Rails выполнять проверки по умолчанию. Он не влияет на метод valid_password?.

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

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

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

+0

Угадай, кто ответил на вопрос ... – Schneems

2

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

+0

Спасибо за это! У меня была такая же проблема, и у меня кончились идеи ... Обновление моего поля БД от 40 до 255 сделало трюк. – fredw

0

попытаться замечание «before_save: encrypt_password» в user.rb если вы иметь.

# before_save :encrypt_password 
1

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

Смежные вопросы