2013-03-02 1 views
9

Possiedo un'applicazione Web che consente la registrazione e l'autenticazione tramite Facebook, Google e Windows Live. Ogni richiesta OAuth ha l'ambito richiesto per recuperare gli indirizzi e-mail associati dal provider di autenticazione.Account singolo per più provider OAuth (Facebook, Google, Windows Live)?

La situazione corrente è che viene creato un account in base al provider e all'identificatore fornito. Ciò significa che se un utente ha connesso con più provider, l'utente avrà più account nell'applicazione Web.

voglio avere la situazione ideale di avere un singolo acccount anche quando si utilizza più fornitori. Stavo pensando di usare gli indirizzi e-mail per vedere se esiste un account per l'utente. Se esiste, utilizzare l'account in base all'indirizzo e-mail.

Quanto è sicuro/affidabile questo? Tutti i provider OAuth menzionati convalidano gli indirizzi e-mail? Modi migliori?

EDIT: ha eseguito un test e si è inventato questo. Ancora in cerca di ulteriori consigli :)

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. 

risposta

4

Interessante domanda. Si potrebbe provare a utilizzare la posta elettronica per verificare se l'utente esiste, ma il problema è che l'utente potrebbe utilizzare diversi indirizzi di posta elettronica per diversi provider.

Il mio suggerimento sarebbe chiedere all'utente (una volta che lui/lei accede alla tua applicazione utilizzando uno dei metodi) per collegare altri fornitori a questo account, in modo che lui/lei possa usarli anche per accedere alla tua applicazione.

Non risolve completamente il problema (non sono sicuro che esista una soluzione), ma l'utente avrà più controllo in questo modo e ridurrà la quantità di account per utente.