2013-03-02 24 views
9

Mam aplikację internetową, która umożliwia rejestrację i uwierzytelnianie poprzez Facebook, Google i Windows Live. Każde żądanie OAuth ma wymagany zakres, aby pobrać powiązane adresy e-mail od dostawcy uwierzytelniania.Pojedyncze konto dla wielu dostawców OAuth (Facebook, Google, Windows Live)?

Obecna sytuacja polega na tym, że konto jest tworzone na podstawie dostawcy i podanego identyfikatora. Oznacza to, że jeśli użytkownik ma zalogowany z wieloma dostawcami, użytkownik będzie miał wiele kont w aplikacji internetowej.

Chcę mieć idealną sytuację posiadania jednego konta usługi nawet przy użyciu wielu dostawców. Myślałem o użyciu adresów e-mail, aby sprawdzić, czy konto istnieje dla użytkownika. Jeśli istnieje, użyj konta na podstawie adresu e-mail.

Jak bezpieczne/niezawodne jest to? Czy wszyscy dostawcy OAuth wymienili adresy e-mail? Lepsze sposoby?

EDYTOWANIE: Przeprowadziłem testy i wymyśliłem to. Wciąż szukam dalszych porad :)

FaceBook: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 
Google: Provides `verified_email`. Additional e-mail will not appear until validated. 
Windows Live: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 

Odpowiedz

4

Interesujące pytanie. Możesz spróbować użyć poczty e-mail, aby sprawdzić, czy użytkownik istnieje, ale problem polega na tym, że użytkownik może używać różnych adresów e-mail dla różnych dostawców.

Moja sugestia polegałaby na zapytaniu użytkownika (po zalogowaniu się do aplikacji przy użyciu jednej z metod) w celu dołączenia innych dostawców do tego konta, aby mógł z nich korzystać również w celu zalogowania się do aplikacji.

Nie rozwiązuje to całkowicie problemu (nie jestem pewien, czy istnieje rozwiązanie), ale użytkownik będzie miał większą kontrolę w ten sposób, a zmniejszysz liczbę kont na użytkownika.

Powiązane problemy