We do something very similar, tho we don't use JWT, just a token, and store the userID in the KV store.
How do you handle cleaning up the vault KV store? We have a separate process that runs around cleaning up old tokens, but am open to a better way.