Установите пароль после создания учетной записи с Omniauth (Rails + Devise) - PullRequest
8 голосов
/ 18 ноября 2011

Как я могу позволить пользователям устанавливать пароли после создания учетной записи через Omniauth?Omniauth создает пароль-заглушку при регистрации, но пользователь не знает, что это за пароль, поэтому не может изменить его со страницы редактирования пользователя.

Я попытался переопределить форму редактирования с помощью следующих инструкций: Как: Разрешить пользователям редактировать свою учетную запись без ввода пароля .Мне удалось изменить зашифрованный пароль в БД, но я не могу войти в систему с новым паролем, и, как ни странно, я не вижу никаких ошибок в консоли при сбое входа.

Есть идеи?

Я использую Rails 3.0.7 и Devise 1.4.8.Мой код входа / регистрации основан на стандартном учебнике Omniauth + Devise .

1 Ответ

0 голосов
/ 04 сентября 2014

Omniauth предоставляет вам информацию только об удаленном пользователе с гарантией того, что этот пользователь подключен к провайдеру. Затем у вас есть три варианта:

  • создать пользователя с этой информацией и установить поля, которые не указаны методом по умолчанию (что вы и сделали для пароля)
  • используйте эту информацию для предварительного заполнения формы регистрации (self.new_with_session, как описано в вашем руководстве) и позволяйте пользователям создавать свои учетные записи самостоятельно, заполняя пропущенные поля (например, пароль)
  • сохраните информацию о всемогуществе в сеансе (или файле cookie), перенаправьте пользователя в форму с пропущенными полями и используйте для создания нового пользователя как информацию о форме, так и информацию о сеансе.
...