2011-11-18 8 views
7

Jak mogę pozwolić użytkownikom ustawiać hasła po utworzeniu konta przez Omniauth? Omniauth tworzy hasło pośrednie podczas rejestracji, ale użytkownik nie wie, jakie to hasło, dlatego nie może go zmienić na stronie edycji użytkownika.Ustawianie hasła po utworzeniu konta w Omniauth (Rails + Devise)

Próbowałem zastąpić formularz edycji instrukcjami tutaj: How To: Allow users to edit their account without providing a password. Byłem w stanie zmienić zaszyfrowane hasło w bazie danych, ale nie mogę zalogować się przy użyciu nowego hasła i, co dziwne, nie widzę żadnych błędów w konsoli podczas niepowodzenia logowania.

Wszelkie pomysły?

Używam Rails 3.0.7 i Devise 1.4.8. Mój kod logowania/rejestracji jest oparty na standardowym samouczku Omniauth+Devise.

Odpowiedz

0

Omniauth dostarcza tylko informacji na temat zdalnego użytkownika, z gwarancją, że ten użytkownik jest podłączony do dostawcy. Następnie mamy trzy opcje:

  • utworzyć użytkownika z tej informacji, a określone pola, które nie są określone w sposób domyślny (czyli to, co zrobiłeś dla hasła)
  • wykorzystać te informacje w celu wstępnego wypełnienia Devise zarejestrować się formularz (self.new_with_session zgodnie z opisem w samouczku) i pozwól użytkownikom samodzielnie utworzyć konto, wypełniając brakujące pola (takie jak hasło)
  • przechowaj informacje omniauth w sesji (lub cookie), przekieruj użytkownika do formularza z brakujące pola i użyj informacji o formie i informacji o sesji, aby utworzyć nowego użytkownika.
Powiązane problemy