【发布时间】:2020-04-02 14:07:20
【问题描述】:
我有一个 GenerateToken 函数,它根据用户名、ID 和标准声明的组合生成令牌。
func GenerateToken( creds *users.User) (tokenString string, err error){
expirationTime := time.Now().Add(100 * time.Hour)
claims := &Claims{
Username: creds.Username,
Id : creds.Id,
StandardClaims: jwt.StandardClaims{
ExpiresAt: expirationTime.Unix(),
Issuer: "gogin",
},
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
tokenString, err = token.SignedString([]byte(os.Getenv("SECRET_CODE")))
if err != nil{
return "", err
}
return tokenString, nil
}
这是声明的结构
type Claims struct {
Username string `json:"username"`
Id uint32
jwt.StandardClaims
}
上面将为我生成一个令牌。 我需要解码这个令牌并提取声明。有什么方法可以得到相同的吗?
【问题讨论】:
-
你的意思是解码令牌字符串? godoc.org/github.com/dgrijalva/jwt-go#ParseWithClaims
-
@NavidZarepak 是的,我只需要从令牌中提取名称和 ID。