【发布时间】:2020-07-31 13:05:51
【问题描述】:
我需要从 Go 中的 JWT 检索子声明的值。
我需要在 go 中解析(旧版)JWT,其中包含一个自定义声明“数据”,其中包含一个由一些字段(用户 ID、用户名)组成的 Json-Object,所以
{ [...standard claims]..., "data":{"id":"123", "name":"JohnDoe"} }
使用github.com/dgrijalva/jwt-go,我可以解析令牌并访问声明:
keyfunc := func(token *jwt.Token) (interface{}, error) {
return tknkey, nil
}
tkn, err := jwt.Parse(tknStr, keyfunc)
cl, _ := tkn.Claims.(jwt.MapClaims)
这适用于标准声明,我还从“数据”声明中的 Json-Sub-Object 获取字段名称,但不是字段值(所有空字符串)。我还尝试设置与声明层次结构匹配的结构(外部和内部结构),但没有成功。
访问子声明值的方法是什么?
【问题讨论】: