0

我想检查一个 jwt 令牌只是为了在内容上达到峰值。我没有验证它的私钥,但我仍然想探索内容。当我尝试使用时,System.IdentityModel.Tokens.Jwt我没有按预期得到索赔。我可以在 jwt.io 上看到令牌和有效负载,但在我尝试代码时看不到。我使用的代码是这样的:

var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadJwtToken(token);

Console.WriteLine("Claims: " + jsonToken.Claims.Count());
jsonToken.Claims.ToList().ForEach(c => Console.WriteLine("==> C: " + c.ToString()));

对于令牌,我让它返回 0 个声明。我希望能够以与我在 jwt.io 上看到的相同的方式访问令牌的有效负载,但不知道如何。我究竟做错了什么。

4

1 回答 1

0

所以检查它我只是决定获取有效负载部分并从中生成 json。

            var payload = token.Split(".")[1];
            var paddedToken = payload.PadRight(payload.Length + (4 - payload.Length % 4) % 4, '=');
            var bytes = Convert.FromBase64String(paddedToken);
            var jsonPayload = System.Text.Encoding.UTF8.GetString(bytes);
            var json = System.Text.Json.JsonDocument.Parse(jsonPayload);
于 2021-03-06T23:05:19.710 回答