Ho letto " link " e " link " (tra gli altri :-)) e cosa che vorrei evitare è usare ciecamente ogni misura di sicurezza I puoi pensare solo a sentire più sicuro. Qualcosa come hashing hash "just in case".
Quello che ho ora (il terzo giorno di passare attraverso l'esempio MEAN) - Ho token JWT (id dell'utente) + data di scadenza. Quindi il segno non vivrà per sempre. Questo token è memorizzato come cookie per ottenere la funzionalità "ricordami".
Quello che mi infastidisce qui è la mancanza di dati casuali che il server aggiunge al mix, così sicuro, non sicuro, ma è una configurazione molto deterministica (vedi il secondo articolo che ho linkato).
Quindi mi chiedo se il token JWT sia meno sicuro del token di sessione "classico" - sto pensando a tale impostazione:
- login utente, il token JWT viene creato come prima, viene creato anche un token di sessione (id + numero casuale), l'hash del numero casuale è memorizzato nel DB (la data di scadenza è impostata ovviamente)
- per lavoro normale viene utilizzato token JWT (non è usato per "ricordami")
- il token di sessione viene utilizzato per "ricordami", è memorizzato come cookie
E quando l'utente ritorna, "ricordami" entra in gioco, invece di accedere, cookie con token di sessione viene utilizzato per autorizzare l'utente, in caso di successo, viene creato JWT.
Quindi ci sarebbero tre "livelli":
- login + password - utilizzo infinito nel tempo
- token di sessione ("ricordami") - uso a lungo termine
- Token JWT - utilizzo a breve termine, solo per il lavoro corrente
La mia domanda è: il mio primo approccio con JWT è meno sicuro o meno? O in altre parole - l'aggiunta di "token di sessione" come descritto sopra ha reso questa installazione più sicura o solo più confusione? : -)