I am currently playing with NestJS' microservices and authentication, and I am facing a problem for which I don't have a clear solution.
Let's imagine I have an API gateway balancing the calls to multiple microservices. I would like to enable authentication (via JWT tokens) and retreive the user information for every process I might call on any microservice.
The problem I am facing is that I don't know where to decode the token.
- Should the API gateway decode the token and proxy the HTTP request to the microservice by appending the user data to it ?
- Should the end microservice decode the token instead of the gateway ?
I feel confident implementing both of them, I just cannot figure out if they are good practicesor if there is a better solution I haven't thought of yet.