Quindi sto creando un sistema di registrazione utente con accesso oauth a quattro servizi. Come posso gestire la selezione del nome utente?

3

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?

    
posta Agamemnus 06.12.2018 - 23:01
fonte

2 risposte

1

Dipende molto dalle tue esigenze del sistema e dal tuo carico per la scelta tra il metodo 1 e il metodo 3.

Io sostengo che il metodo 1 nella maggior parte dei casi sarà disapprovato dagli utenti del tuo sistema, l'utente dovrebbe avere una scelta riguardo al suo 'nome utente creato e dovrebbe essere un nome utente uniforme tra i servizi forniti (in caso contrario, perché per registrarti attraverso te in primo luogo.

Il metodo 2 sarà difficile da implementare molto probabilmente e può creare molte incongruenze.

Il metodo 3 dipende molto dal carico del tuo sistema, dai requisiti degli utenti e dalla regolazione del tempo di blocco del nome utente. Credo che sarà difficile mantenere o scalare in seguito.

In sintesi, ti suggerisco di:

  • offre all'utente una scelta sul suo "nome utente finalizzato

  • rende questo nome utente uniforme tra i servizi.

Se hai il controllo su questi quattro servizi, può essere fornito registrandosi nello stesso ordine, verificare la chiusura della collisione e chiedere all'utente un altro nome utente.

Altrimenti, è probabilmente irrealizzabile e dipende da come l'utente interagisce con il sistema - fornisci un nome utente coerente dal tuo servizio e salva la mappa sul nome utente effettivo (magari generato) nel tuo servizio.

    
risposta data 03.01.2019 - 12:14
fonte
1

Vuoi dire single signon per i quattro servizi. Per OAuth è necessario utilizzare qualcosa come Facebook o Google per autenticare l'utente e quindi autorizzare l'utilizzo di tutti / tutti i quattro servizi in base ai ruoli dell'utente.

    
risposta data 13.01.2019 - 23:41
fonte

Leggi altre domande sui tag