Ecco l'idea:
- Ho un sito web in cui offro agli utenti l'accesso / iscrizione tramite social network (in questo caso Facebook e LinkedIn)
- Quando un utente esegue l'autenticazione con entrambi i provider, cerco gli utenti nel mio DB e vedo se c'è già un utente che ha aggiunto lo stesso ID di social network al proprio profilo.
- Se c'è - si registrano
- Se non c'è, un nuovo utente è registrato nel mio DB.
Ora la domanda è: dato che posso ottenere l'email dell'utente sul social network, posso cercare anche i miei utenti basandomi su quello. Devo procedere e collegarli a quel punto o è considerata una violazione della sicurezza (dal momento che, a seconda del social network, è possibile cambiare la tua email a una che non possiedi, entrando così nel profilo di qualcun altro)?
Perché potrebbero aver già registrato un account utilizzando il modulo di registrazione standard e poi hanno dimenticato di averlo fatto e fatto clic sul pulsante di accesso al social network. Ovviamente non vuoi che abbiano un nuovo profilo (e tecnicamente non possono farlo, dal momento che quell'e-mail è già stata utilizzata).
O forse se un utente con quell'email esiste già, allora posso visualizzare un messaggio all'utente che dice qualcosa di simile
An account with your email already exists. Please log-in with that email and your password using the form below and then add your social network profile in order to be able to log-in with it in the future.
PS: ho già posto la stessa domanda su webapps.stackexchange.com ma si è rivelato essere il posto sbagliato per questo. Osservando le linee guida per le domande su questo sito sembra che sia il posto giusto per porre la domanda, ma se non fosse sarei felice se qualcuno mi indicasse la giusta direzione.
In questo modo, una volta effettuato il log-in con il proprio account sul sito, possono eseguire nuovamente l'autenticazione con il servizio e una connessione tra il proprio account sul servizio e il proprio account locale, consentendo loro di accedere con esso in il futuro.