Buone pratiche per salvare l'ultima volta che l'utente ha effettuato l'accesso all'app

3

Utilizzando un'autenticazione JWT, l'utente non deve effettuare il login ogni volta che usa la mia app.

Vorrei salvare in DB l'ultima volta che l'utente ha utilizzato / ha aperto l'app.

Tecnicamente, ho un set di API REST che può controllare ogni richiesta e salvare nel database il timestamp corrispondente all'accesso utente corrente ma ... per ogni richiesta?!

Che cosa è una buona pratica per memorizzare queste informazioni senza coinvolgere il database ogni volta che l'utente fa una richiesta?

    
posta Mik378 02.08.2015 - 01:33
fonte

2 risposte

2

È possibile impostare una soglia.
Ad esempio, è possibile archiviare quella visitata alle 14:00 PM e quindi verificare se la differenza tra l'ora corrente e l'ora corrente è superiore a 30 minuti, quindi al massimo 2 aggiornamenti all'ora.

Se hai un servizio stateful, un altro approccio sarebbe quello di memorizzare il tempo di ogni richiesta in memoria (driver di sessione predefinito, Redis, Memcache, qualunque cosa).
In questo modo, puoi rilevare quando lascia la tua app e archiviare l'ultima volta solo una volta, alla fine.

Aggiornamento:

Un altro modo sarebbe quello di pubblicare un timestamp della richiesta con i token dell'API se usi, per esempio, JWT. In caso contrario, è comunque possibile inviare i cookie o memorizzarli in localStorage dell'utente. Quindi ti invieranno l'ultimo accesso con ogni richiesta e potrai utilizzare il primo suggerimento senza dover toccare il database.

    
risposta data 02.08.2015 - 02:34
fonte
2

Considera l'utilizzo di una coda, in cui ogni metodo accede alla voce risultante e utilizza un

  1. lavoro timer
  2. lunghezza della coda che raggiunge una determinata soglia

per svuotare la coda nel database.

    
risposta data 02.08.2015 - 12:07
fonte

Leggi altre domande sui tag