我需要从 Go 中的 JWT 检索子声明的值。
我有(旧版)JWT 我需要在 go 中解析,其中包含一个自定义声明“数据”,其中包含一个由一些字段(用户 ID、用户名)组成的 Json-Object,所以
{ [...standard claims]..., "data":{"id":"123", "name":"JohnDoe"} }
使用 using 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 获取字段名称,但不是字段值(所有空字符串)。我还尝试设置与声明层次结构(外部和内部结构)匹配的结构,但没有成功。
访问子声明值的方法是什么?