In che modo l'autenticazione basata su token è stateless?

2

La mia comprensione è che i token sono firmati dal server e ogni volta che un client effettua una richiesta con il token, il server la decrittografa per ottenere le informazioni dell'utente.

Un paio di problemi che vedo sulla chiamata di questo apolide:

1) Esiste una chiave privata per tutti gli utenti? Se è diverso, stai mantenendo tutte le chiavi private invece delle informazioni sulla sessione.

2) Una volta che il server decrittografa il token, diciamo che il messaggio decrittografato è un blob JSON con campi come id,username su di esso. Come farà il server a sapere se id, username esiste sulla sua piattaforma senza mantenerlo in primo luogo?

    
posta Abhibandu Kafle 25.01.2018 - 20:11
fonte

1 risposta

4

C'è solo una chiave privata che viene utilizzata per firmare tutti i token. Quindi la chiave stessa non è uno stato del server.

Sì, ovviamente è necessario un database con dati utente, come ID e nome utente. Ma avere un database per archiviare dati permanenti non ti rende statico. Quando parliamo di server stateless, intendiamo che non c'è stato di sessione memorizzato sul server. Ma ovviamente ci sono ancora molti dati su utenti, post di blog, prodotti o altro.

Inoltre, poiché il token è firmato dal server, in realtà non è necessario verificare con il database che le informazioni dell'utente siano corrette su ogni richiesta. Il server si assicura che i dati siano corretti quando firma il token e dopo di ciò la firma lo verifica.

    
risposta data 25.01.2018 - 20:25
fonte

Leggi altre domande sui tag