2012-11-06 9 views
5

I wprowadziły uwierzytelniania Devise Omniauth w mojej aplikacji Rails powodzeniem stosując następujący samouczek przez git OmniAuth: OverviewJak przeprowadzić wielokrotne uwierzytelnianie za pomocą narzędzia Devise Omniauth + (Facebook, Twitter, Google)?

Ale to nie będzie obsługiwać wiele poświadczeń, może być, że wszyscy wiedzą, że i przedtem w obliczu tego samego problemu, ale jeśli ludzie poprawili ten sam problem, proszę, dajcie mi znać.

To jest scenariusz, który muszę wykonać przy użyciu Omniauth + Devise.

Mamy użytkownika o imieniu John i ma on już konta w obu Google & Facebooku z tym samym identyfikatorem e-mail "[email protected]".

Po raz pierwszy John próbuje zalogować się przy użyciu swojego konta Google, tym razem John z powodzeniem zalogował się.

, ale po raz drugi próbuje zalogować się przy pomocy swojego konta na Facebooku, tym razem nasza aplikacja przekierowuje Johna na adres registration_url, nie pozwalając mu zalogować się na swoje konto na Facebooku.

Wiem, dlaczego to jest hapepnig, ponieważ programowanie wewnętrznie potwierdzi wyjątkowość wiadomości e-mail. Ale jestem bardzo ciekawy, aby wiedzieć, czy istnieje sposób na ulepszenie tego problemu, abyśmy mogli uzyskać wiele uwierzytelnień. Stack-Overflow zrobił to samo bardzo ładnie.

Proszę mi pomóc znaleźć rozwiązanie.

Dziękuję ..

+0

ten został pomyślnie odpowiedział tutaj: http: //stackoverflow.com/questions/21249749/rails-4-devise-omniauth-with-multiple-providers – charlysisto

Odpowiedz

4

spróbować tego w pliku devise.rbkomentarz tej linii lub zmienić e-mail i używać za to różnicę, a następnie spróbuj

# to authenticate or find a user. Default is :email. 
    config.case_insensitive_keys = [ :email ] 
    # modifying a user and when used to authenticate or find a user. Default is :email. 
    config.strip_whitespace_keys = [ :email ] 
+0

jest to jedyny sposób na dokonanie wielokrotnego uwierzytelnienia.? – Sreehari

+0

jest jeszcze jeden sposób, ale musisz zrobić kodowanie i warunki zapisu –