Sto programmando un'app mobile che utilizza i servizi REST.
Alcuni dei servizi sono per gli utenti registrati, quindi ho un endpoint di accesso che mi consente di inserire le mie credenziali e ottenere un token JWT per accedere alle API protette.
Voglio poter accedere una sola volta e farmi ricordare dall'app senza che mi chieda di effettuare nuovamente il login ogni volta che chiudo e riapilo.
Ho trovato due scelte finora:
- Crea un JWT di lunga durata, che non scade. In questo modo, posso solo salvarlo e usarlo ogni volta che avrò bisogno di accedere alle API protette. Questo può essere pericoloso perché se il token passa in mani sbagliate, l'hacker avrebbe una chiave di accesso che non scade mai. Quello potenzialmente è un accesso permanente all'applicazione.
- Salva nome utente e password nella memoria locale dell'app. In questo modo posso avere JWT in scadenza che possono essere aggiornati, e se l'ultimo token è scaduto, posso chiamare di nuovo l'API di login con lo stesso nome utente e password per ottenere un nuovo token. Questo può essere pericoloso perché dovrei salvare le credenziali dell'utente sul telefono, mi sembra rischioso.
Quindi qual è l'approccio comune a questo problema?