L'utilizzo di token stateless come JWT è sicuro fino a quando il segreto utilizzato per firmare il token e il modo in cui viene verificato che siano sicuri. Ma ci sono alcuni aspetti aggiuntivi da considerare prima di utilizzare i JWT come auth-token nell'URI di reimpostazione della password ...
Come non è possibile invalidare una JWT specifica (senza mantenere di nuovo lo stato) e la scadenza non è sufficiente (in questo caso specifico), ciò che fondamentalmente si vuole avere è che il proprio JWT sia quello che comunemente si conosce come gettone One-Time o Single-Use. Il motivo è che probabilmente non si desidera utilizzare un singolo link di reimpostazione della password più di una volta per reimpostare una password in quanto consentirebbe a potenziali utenti malintenzionati di bloccare completamente un utente (cambiando continuamente le password).
Ho descritto come può funzionare qui: Single-Use Tokens w/ JWT - in pratica è necessario attivare un tipo di stato sul lato server (nel tuo caso, ad esempio l'hash della password dell'utente) in una chiave HMAC e utilizzarlo per firmare il token specifico dell'utente. Ciò comporterebbe il fallimento della verifica del token dopo la modifica della password ...
Questo particolare token non è sicuro, poiché il tuo segreto della firma è facilmente intuibile. – Thilo
Inoltre, l'indirizzo email non deve essere incluso in una parte del JWT? O c'è qualche altro identificativo utente univoco? È "azienda: Toptal"? – Thilo
ok, questo era solo un esempio che non conosco nemmeno i dati decodificati. Cosa succede se il segreto della firma è forte? è jwt come un collegamento sicuro? Menzionato qui https://github.com/dwyl/learn-json-web-tokens#q-if-i-put-the-jwt-in-the-url-or-header-is-it-secure mi ha davvero conquistato confuso. – momokjaaaaa