Il problema che sto cercando di risolvere è quello di verificare se un nome utente è già utilizzato prima di consentire a un utente amministratore di creare un nuovo utente con quel nome utente.
Attualmente sto facendo una richiesta Ajax per verificare se il nome utente è preso. Ciò può causare un ritardo che influisce negativamente sull'esperienza utente, in particolare perché sono incoraggiati a creare più di 30 nomi utente contemporaneamente durante il processo di onboarding.
Mi chiedo se esiste un algoritmo di hashing che consente al back-end di costruire una stringa che il front-end può usare per verificare se un nuovo nome utente è nel set.
per esempio,:.
sul back-end
usernames_set = jim, carl, fred
my_hash = generate_hash(usernames_set) // returns e.g., 23223edw3234fcvdvc
# now pass this hash to the frontend.
sul frontend
checkValueInHash('jim') // returns true
checkValueInHash('nigel') // returns false
Apprezzo che possa passare semplicemente il set di nomi utente al frontend, ma ciò diventerebbe impossibile dato che il numero di elementi nel set diventa migliaia. Inoltre, ci sono implicazioni sulla sicurezza di provare un elenco di nomi utente validi.
Nota Indento per risolvere il problema di coerenza (cosa succede quando vengono creati nuovi utenti dopo che l'hash è stato inviato al frontend?) usando websockets per inviare una nuova stringa quando vengono creati nuovi utenti.
Nota anche che apprezzo che riduco questo problema inviando i controlli del nome utente in blocco, ma mi piacerebbe capire quali altre opzioni sono disponibili.