加密过程:
// 生成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
的值
根据 jwt 的规范,header 和 payload 经过 base64 encode 后使用
.
连接,再将 sign 使用.
拼接在最后,成为 token 。故,只需要使用
.
分割字符串,然后将 payload 部分进行 base64 decode 即可。