【go】go jwt生成的字符串token怎样解密

加密过程:

// 生成token type Token

token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{

"uid": "123",

"iat": time.Now().Unix(),

"exp": time.Now().Add(1 * time.Hour * time.Duration(1)).Unix(),

})

// 加密用的签名密钥

signSecret:=[]byte("abcdefg123456")

// 生成给客户端的token

tokenString, _ := token.SignedString(signSecret)

//eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjEyNzg0MDcsImlhdCI6MTU2MTI3NDgwNywiaXNzIjoiR29GdW5jIiwianRpIjoiOTUyNyIsInVpZCI6MSwidXNuIjoieXpoYTUifQ.fVvevhHHRhuUySRjSw-qMG3NEQqSdD9m6m1GBSD5u6o

以上加密后,生成的token字符串怎样解密?
我最终是想取得Claims里的uid的值

'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjEyNzg0MDcsImlhdCI6MTU2MTI3NDgwNywiaXNzIjoiR29GdW5jIiwianRpIjoiOTUyNyIsInVpZCI6MSwidXNuIjoieXpoYTUifQ.fVvevhHHRhuUySRjSw-qMG3NEQqSdD9m6m1GBSD5u6o'.split('.').map(e=>{console.log(atob(e))})

// {"alg":"HS256","typ":"JWT"}

// {"exp":1561278407,"iat":1561274807,"iss":"GoFunc","jti":"9527","uid":1,"usn":"yzha5"}

根据 jwt 的规范,header 和 payload 经过 base64 encode 后使用 . 连接,再将 sign 使用 . 拼接在最后,成为 token 。

故,只需要使用 . 分割字符串,然后将 payload 部分进行 base64 decode 即可。

回答

以上是 【go】go jwt生成的字符串token怎样解密 的全部内容, 来源链接: www.h5w3.com/114615.html

回到顶部