No, non è una buona idea memorizzare la password dell'utente. Il salvataggio della password è facile da sbagliare e crea un altro vettore di attacco (archiviazione su dispositivo mobile). Anche se non dovrebbero, molti utenti usano la stessa password per più servizi. Quindi un compromesso della loro password per il tuo servizio potrebbe anche esporre i loro dati per altri servizi. Non puoi davvero proteggere l'utente dalle sue cattive abitudini, ma memorizzare una password nella tua app è molto evitabile.
Quello che probabilmente vuoi è un aggiorna il token . Questo concetto fa parte della specifica OAuth2 . Questi possono essere utilizzati per mantenere l'utente "connesso" senza mantenere la password o richiedere scadenze a lungo termine. Puoi anche "disconnettere" efficacemente un utente annullando l'autorizzazione del token di aggiornamento, a patto che tu stia utilizzando brevi durate del token di accesso.
Il modo in cui funziona:
- L'utente si autentica con la password per il servizio auth (non la tua API)
- L'app riceve un token di accesso e un token di aggiornamento
- Il token di accesso ha una durata breve, ad esempio 5 minuti
- Il token di accesso serve solo per chiamare la tua API
- Il token di aggiornamento è valido per molto tempo, ad esempio 1 mese
- Il token di aggiornamento serve solo per chiamare il servizio di autenticazione per richiedere un nuovo token di accesso
- L'app utilizza il token di accesso per chiamare la tua API
- Il token di accesso scade (frequentemente)
- L'app utilizza il token di aggiornamento per ottenere un nuovo token di accesso dal servizio di autenticazione
- Successivamente, admin "registra l'utente" revocando il token di aggiornamento
- Entro 5 minuti (durata del token di accesso)
- Il token di accesso scade
- L'app non sarà in grado di ottenere un nuovo token di aggiornamento del token b / c negato
- L'utente dovrà reinserire la password per ottenere nuovi token
Se non lo sei già, ti consiglio vivamente di esternalizzare l'autenticazione e l'autorizzazione (non implementandola tu stesso). Esistono diversi provider cloud che eseguono questo servizio come servizio (ad esempio Auth0). Per .NET Core c'è anche IdentityServer4 che puoi ospitare tu stesso. Non ho esperienza con ASP.NET Core Identity, ma a un'occhiata superficiale non viene automaticamente con le funzionalità OpenID Connect e OAuth2. Devi fare dei passi di integrazione con altri provider (come IdentityServer4) per ottenere quello.