2013-09-30 2 views
2

Я пытаюсь включить #registerable выключить в завещанию и просто зарегистрировать пользователь через консоль и семеноводство данных, однако я имею вопрос с знаком.DEViSE пользователи, созданные в консоли не могут войти в

  1. Я создал пользователь через консоль: User.create! (email: '[email protected]', пароль: 'пароль', имя пользователя: 'username')
  2. Он проходит проверку и сохраняется в базе данных
  3. Я не могу войти (через форму веб-сайта) с этим пользователем, когда я предоставляю адрес электронной почты: [email protected] и пароль: пароль
  4. Это пароль, хотя, в консоли:

    u = User.find_by_email('[email protected]') 
    
    u 
    => #<User id: 6, email: "[email protected]", encrypted_password: "$2a$10$xd0PMJ.qDDu6VtFd6i2EM.bQ0h1rvODyzaqFdzo3Uo4C...", username: "user", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2013-09-30 01:25:16", updated_at: "2013-09-30 01:25:16"> 
    
    
    u.valid_password? 'password' 
    => true 
    

Я пытался несколько пользователей, и я попытался создать его с дб/seed.rb. Опять же, он попадает в базу данных, и все выглядит хорошо. Он просто не войдет. Я также попытался добавить поле password_confirmation с совпадающим паролем, без кубиков.

Если я включаю: можно зарегистрировать в пользовательской модели, перейти на страницу регистрации, подписать пользователя, я могу войти в систему с этим пользователем (созданным по форме).

Моя единственная мысль заключается в том, что существует какая-то разница в способе создания зашифрованного пароля? Но это не выполняется, потому что я могу запустить ту же проверку find_by_email/valid_password веб-пользователя.

Любая помощь была бы принята с благодарностью?

Edit:

Я не использую Confirmable, вот атрибуты мой Разрабатывают:

 devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatablen 

Edit2 Теперь я не могу войти с моими веб-аккаунтах. Мне нужно сделать больше отладки.

+0

Пожалуйста, объясните, что вы видите при попытке войти в систему. –

+0

Он повторно отображает страницу users/sign_in с набором заголовков флэш-памяти: «Неверный адрес электронной почты или пароль». Ошибка 401 в журнале Rails Server – Mike

+0

Что произойдет, если вы создадите пользователя на консоли, а затем другой с тем же паролем через браузер? Совпадают ли зашифрованные пароли? –

ответ

1

Я решил эту проблему. Я сделал неправильную конфигурацию в инициализаторе. Я неправильно читал строку config.authentication_keys и думал, что это либо/или для ключей, и не для всех ключей. Если другой человек нашел это в google, я рекомендую вернуться к автогенерированному инициализатору или git roll back to it. Я не думаю, что это имело какое-либо отношение к различию в создании пользователя или: регистрируемый модуль разработки.

2

Если предположить, что используют Confirmable, используйте следующие действия для создания пользователя:

User.create!(email: '[email protected]', password: 'password', username: 'username', confirmed_at: Time.now) 

В противном случае, изобрести будет ждать пользователя, чтобы подтвердить свой адрес электронной почты, который никогда не происходит

+0

Когда вы смотрите на вывод консоли в вопросе, не видно, что подтверждающий используется. –

+0

Вы правы, извиняетесь, мои плохие –

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