Short live Json Web Tokens (comprensione del problema di JWT)

1

Ho preso in considerazione l'utilizzo di JWT per il mio REST-APi. L'utente deve accedere a / api / login con l'autenticazione di base e recupera un JWT che viene utilizzato per ulteriori richieste. All'inizio era previsto un tempo di vita molto lungo per il token.

Ora ci sono due problemi: 1. il JWT dovrebbe essere inserito nella blacklist / invalidato 2. i ruoli dell'utente possono cambiare. Il token non dovrebbe inviare vecchi ruoli.

Quindi la soluzione è usare JWT che scadono presto. Ma seriamente, se devo accedere a / api / login ogni volta, perché non uso l'autenticazione di base per tutto?

Naturalmente potrei anche codificare un servizio in background per il dispositivo che aggiorna il token ogni pochi minuti usando il vecchio token. Ma cosa succede se il servizio o il cliente REST è giù di un'ora? Tutti verrebbero scollegati. Inoltre, non desidero un processo in background che aggiorni sempre i token, anche se l'app è scollegata.

Quindi finirò con una query del database che recupera i ruoli dell'utente e controlla anche se il JWT non è nella lista nera a ogni richiesta. Quindi ci saranno differenze nell'uso delle normali chiavi API?

    
posta NoobieNoob 23.07.2017 - 09:21
fonte

1 risposta

1

Le JWT descrivono token al portatore. Si verificano i due problemi descritti (token obsoleti, invalidazione), poiché i JWT non sono progettati per questo caso d'uso.

Ti suggerisco di attenersi alle chiavi API e di memorizzare la scadenza e i ruoli sul back-end. È semplice ed efficace.

Se avvii la lista nera e interroghi i ruoli con JWT finirai nello stesso posto con maggiore complessità.

    
risposta data 23.07.2017 - 11:41
fonte

Leggi altre domande sui tag