Il mio sistema di registrazione normalmente richiede 4 cose: Il nome completo dell'utente, la sua email, il nome utente preferito e una password.
Voglio aggiungere quattro servizi di registrazione oauth2 per rendere più facile e veloce la creazione di un account da parte degli utenti.
Posso vedere tre metodi per farlo, o forse c'è qualcosa di più elegante che non ho capito. Chiedendosi cosa scegliere. Sono preoccupato per le collisioni del nome utente e la facilità d'uso:
Metodo 1
L'utente fa clic su un pulsante che rappresenta uno dei quattro servizi. Confermano di consentire l'autorizzazione e hanno effettuato l'accesso. Ricevono un'email con il nome utente selezionato dal server e da qualche parte nell'interfaccia indicata anche dal nome utente.
In questo schema, il server sceglierà il nome utente del servizio se non c'è collisione di nome utente con il mio database. Se è una collisione di nome utente, il server aggiungerà per es. "2" per il nome utente.
Metodo 2
Con questo metodo, fanno clic per autorizzare e quindi viene richiesto il nome utente nell'URL di richiamata o nella pagina originale, pre-compilato con ciò che il server pensa che dovrebbe essere. Un po 'scontroso, ma ora conoscono quale nome utente ottengono, anche se l'email va allo spam.
Metodo 3
Registrazione in due passaggi. L'utente (1) seleziona un nome utente, quindi (2) nella schermata successiva selezionano un nome completo / email / password o per collegarlo a un servizio tramite oauth2. Quindi (3) autorizzano il collegamento.
Osservazioni:
- Il Metodo 1 è il più semplice in termini generali, ma rischia di perdere o di non vedere / confermare / confermare il proprio nome utente.
- Il metodo 2 è un po 'kludgy.
- Penso che il Metodo 3 sia abbastanza pulito, ma necessita di due passaggi per registrarsi. Le registrazioni regolari diventano effettivamente più lunghe ora ...
- Il metodo 3 richiede un blocco su un nome utente scelto nei passaggi intermedi: Se qualcun altro crea un utente con il nome utente del nostro utente selezionato al passaggio n. 1 e il nostro utente è al passaggio n. 3, il server deve ripristinare il Metodo n. 2 o il Metodo n. 1. In alternativa, il nome utente viene bloccato per un certo periodo di tempo, ma il caso limite rimane ancora. In sintesi, il Metodo # 3 è pulito, ma richiede qualche passo in più rispetto agli altri metodi e presenta casi di bordo minuti.
Pensieri su quale metodo dovrei scegliere, se esiste?