Nell'implementazione dell'autenticazione del mio server delle app, viene generato un token di autenticazione per ogni utente che ha effettuato l'accesso. Secondo alcuni suggerimenti di sicurezza altamente raccomandati ( Implementazione dell'autenticazione sicura dell'utente nelle applicazioni PHP con persistenza a lungo termine (accesso con i cookie" Remember Me ") ), questo token deve essere aggiornato frequentemente, a un certo intervallo o anche dopo ogni richiesta autenticata. Soprattutto nell'autenticazione web, il token viene impostato o aggiornato con l'intestazione "set-cookie" in una risposta HTTP. Tuttavia, c'è una possibilità che:
- La connessione è inattiva o il processo client viene ucciso prima che la risposta venga inviata ed elaborata e il server non può giudicare se la risposta è effettivamente ricevuta e salvata dal client. (secondo Scoprire se è stato consegnato un messaggio su tcp )
- Il client (in particolare un browser, un client HTTP) invia più richieste in connessione parallela al server e il server genera diversi nuovi token, aggiorna il database atomicamente e li invia nuovamente in thread separati. A causa dei ritardi della rete, l'ordine di arrivo di tali nuovi token potrebbe non essere uguale all'ordine in cui raggiungono il client, pertanto il client potrebbe non conservare lo stesso token più nuovo del database del server.
In che modo i servizi di app di successo gestiscono i 2 problemi menzionati sopra? C'è una soluzione buona e semplice per loro?