Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

decoding JWT token in Golang

Tags:

go

jwt

jwt-go

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!

like image 973
Sredny M Casanova Avatar asked Jul 30 '17 23:07

Sredny M Casanova


People also ask

How do I decode a JWT token in Golang?

Use github.com/dgrijalva/jwt-go go liabary for the implementation. we can extract JWT token information from the api request according to the following way. When post the JWT token from the using post request. you must extract JWT information in routing section.

How to validate a jwt token in Golang?

To verify a JWT, the server generates the signature once again using the header and payload from the incoming JWT, and its secret key. If the newly generated signature matches the one on the JWT, then the JWT is considered valid.


1 Answers

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) } 
like image 182
putu Avatar answered Sep 20 '22 11:09

putu