Sto creando un back-end API REST, per un'applicazione mobile. Nella nostra scelta progettuale, abbiamo deciso di consentire ai provider di OAuth2 di gestire la sicurezza di accesso.
Tuttavia, non sono sicuro di quale sia la migliore pratica per il token di accesso, che acquisisco dai provider OAuth2.
La situazione è che ottengo un token di accesso dal provider OAuth2, quando l'utente effettua un accesso. Dovrò utilizzare questo token, ogni volta che l'applicazione mobile effettua una richiesta al mio back-end. Quindi posso validare il provider OAuth2, per vedere se il token è ancora valido.
So che creerò una JWT e la passerò all'applicazione mobile, che userà ogni volta che farà una richiesta.
Ora la mia domanda è, dovrei memorizzare il token di accesso che ho ricevuto dal provider OAuth2, all'interno del JWT come attestazioni.
O dovrei memorizzarlo in un database e collegarlo con l'ID utente, che memorizzerò nelle richieste JWT?
Forse si consiglia di crittografare il JWT, con JWE? In tal caso, diminuirà le prestazioni se decifro per ogni richiesta, piuttosto che eseguire una ricerca nel database (userò MongoDB o Redis) o l'impatto sulle prestazioni sarà lo stesso?
La connessione alla mia API REST, avverrà tramite HTTPS.