Esiste un'API interna, il client REST su DB, tutti i metodi richiedono l'ID utente come parametro. L'ID utente è un valore intero - PK numerico nella tabella utente.
C'è anche un'API pubblica, che è come un gateway Pro + Auth +: controlla il token JWT, estrae l'ID utente e quindi reindirizza all'API interna. Quindi ora l'ID utente viene passato come parte del token JWT, quindi tutti possono estrarre / conoscere il valore - il problema che voglio risolvere.
La sete di ciò che pensavo fosse di cambiare l'API pubblica per lavorare con un ID utente esterno (GUID per esempio): - aggiungere una tabella di mappatura aggiuntiva per avere una mappatura tra ID esterno e interno; - L'API esterna prende l'ID esterno da JWT, fa in modo che la query recuperi l'ID utente interno corrispondente - chiama l'API interna utilizzando l'ID utente interno
Ciò che non mi piace in questo approccio è una query aggiuntiva a DB con ogni richiesta. L'uso della memorizzazione nella cache può ridurre il numero di query, ma ...
Un'altra opzione, a quanto vedo, è usare il token JWE al posto di JWT. Almeno uno svantaggio di questo approccio è rappresentato dalle spese di crittografia / decrittografia.