I am following the Go API: Authorization tutorial to secure my GoLang API: Auth0 Go API SDK Quickstarts: Authorization
This all works fine and I can validate a token. But ultimately I need some user information from the logged-in user, their user_id at the least. Is this something the auth0 validator library is able to handle in the process of validating the token? I was expecting some helper functionality to pull this information but I can’t find any functions in the library doing this. Or do I need to manually pull the user information myself using the token after it’s validated?
I was kind of expecting to get an ID Token from validation but that object doesn’t seem to exist for me.
So the main issue here was I was retrieving an access token with a client grant from an app so I wasn’t logged in as a user
.
Once you pass an access token actually tied to a user, the user_id is available on the valid claim:
claims := r.Context().Value(jwtmiddleware.ContextKey{}).(*validator.ValidatedClaims)
claims.RegisteredClaims.Subject
I do think it would be nice if the ValidateToken method was more exposed from the library so I could call it in my middleware and define the context however I want, with the valid claims inside of my own struct. Still this is great 
Glad you have figured it out and thanks for sharing with the rest of community! I’m gonna relay that feedback to appropriate team!