I am currently working on a Golang application.I receive a JWT token from the client side and, in Go I need to decode that token and get the information: user, name, etc. I was checking the libraries that are available to handle JWT tokens and I came down to https://github.com/dgrijalva/jwt-go, but I don't see how to simply make what I need.
I have the token and I need to decode the info into a map or at least a json. Where can I find a guide of how to do it? Thank you!
Function jwt.ParseWithClaims
accept an interface of jwt.Claims
as the second argument. Besides struct-based custom claims, the package also provides map
-based claims, i.e. jwt.MapClaims
.
So, you can simply decode the token into a MapClaims
, e.g.
tokenString := "<YOUR TOKEN STRING>"
claims := jwt.MapClaims{}
token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
return []byte("<YOUR VERIFICATION KEY>"), nil
})
// ... error handling
// do something with decoded claims
for key, val := range claims {
fmt.Printf("Key: %v, value: %v\n", key, val)
}