Attualmente sto implementando un'architettura OAuth 2.0 per la mia API RESTful.Controlla token di accesso ogni richiesta con Redis
Con ogni richiesta ho creato un autorizzazione portatore token nell'intestazione HTTP per tutti i miei clienti per effettuare richieste Autorizzati.
Authorization: Bearer sdflksd3r4823vkn95-03850432
Capisco che è pratica comune di accettare solo il token nelle API fino alla data di scadenza. Ma diciamo che se un utente desiderava revocare il token, avrei bisogno di utilizzare un metodo per controllare lo stato del token con ogni richiesta.
Stavo pensando di andare al Db per verificare ogni richiesta HTTP. Ho la sensazione che questo non si ridimensionerà bene a causa di motivi di prestazioni.
Quindi mi chiedevo se una soluzione come Redis sarebbe appropriata per letture singole molto veloci dello stato del token di accesso?
Stavo considerando un filtro di fioritura. Anche se mi chiedevo anche se l'utilizzo di una cache singleton fosse un'opzione valida –
Se si dispone di un solo server, si hanno molte più opzioni in quanto è sufficiente mantenere lo stato in un unico posto. Avere un server esterno come Redis mantiene lo stato consente di avere più server API. Un singleton funziona solo se si dispone di un singolo server. Un'altra alternativa sarebbe una mappa distribuita (Coherence, Hazelcast, ecc.). Se i token hanno scadenze relativamente brevi, allora puoi anche rimuovere dalla mappa distribuita quando scadono per ridurne le dimensioni. – sehrope
Risposte eccellenti. Molte grazie! –