Vorrei implementare l'autenticazione basata su JWT nella nostra nuova API REST. Ma poiché la scadenza è impostata nel token, è possibile prolungarla automaticamente? Non voglio che gli utenti debbano accedere dopo ogni X minuti se stavano attivamente utilizzando l'applicazione in quel periodo. Sarebbe un enorme fallimento della UX.
Ma il prolungamento della scadenza crea un nuovo token (e quello vecchio è ancora valido fino alla scadenza). E generare un nuovo token dopo ogni richiesta mi sembra sciocco. Sembra un problema di sicurezza quando più di un token è valido contemporaneamente. Naturalmente potrei invalidare il vecchio usato usando una lista nera ma avrei bisogno di conservare i token. E uno dei vantaggi di JWT è l'archiviazione.
Ho trovato come Auth0 ha risolto il problema. Usano non solo il token JWT ma anche un token di aggiornamento: https://docs.auth0.com/refresh-token
Ma ancora una volta, per implementare questo (senza Auth0) avrei bisogno di memorizzare i token di aggiornamento e mantenere la loro scadenza. Qual è il vero vantaggio quindi? Perché non avere un solo token (non JWT) e mantenere la scadenza sul server?
Ci sono altre opzioni? L'uso di JWT non è adatto a questo scenario?