在Blazore Client_side结果中解码Jwt WASM:System.ArgumentException:IDX12723:无法解码有效载荷'[PII被隐藏

问题描述 投票:0回答:1

我正在尝试解码由我的asp.net核心api生成的Jwt这是我用来解码我的jwt的代码

        var handler = new JwtSecurityTokenHandler();
        var tokenS = handler.ReadJwtToken(jwt);
        return tokenS;

这在服务器中有效。没问题。但是,如果我尝试在Blazor client_side中使用同一段代码,则会出现此错误。

blazor.webassembly.js:1 WASM:System.ArgumentException:IDX12723:无法解码有效载荷'[PII被隐藏。有关更多详细信息,请参见https://aka.ms/IdentityModel/PII.]'作为Base64Url编码的字符串。 jwtEncodedString:'[PII被隐藏。有关更多详细信息,请参见https://aka.ms/IdentityModel/PII.]。 ---> Newtonsoft.Json.JsonSerializationException:无法找到用于类型System.IdentityModel.Tokens.Jwt.JwtPayload的默认构造函数。路径'unique_name',第1行,位置15。

这是jwt令牌即时通讯正在使用并尝试解码

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjA4ZDdjYzE5LWY2OTgtYTRlOS05ODcxLWE2ZWM1ODg1OTRhZCIsInJvbGUiOiJBZG1pbiIsImdpdmVuX25hbWUiOiJvY2xpY2swMjEiLCJuYmYiOjE1ODQ4MjM0MTYsImV4cCI6MTU4NDgyMzcxNiwiaWF0IjoxNTg0ODIzNDE2fQ.nD3YzBu1qvNelDz2WHcMSGcKkTtTHX98baNTBXeu12M

.net jwt blazor webassembly blazor-client-side
1个回答
0
投票

对以后遇到此问题的任何人都可以。请不要像我一样,先阅读错误。因此,有关更多详细信息,我打开了PII。只需将这行代码放在引起错误的行之前。

   IdentityModelEventSource.ShowPII = true;

现在我可以看到我的问题的更详细的信息,这是打开我的PII后的错误

Newtonsoft.Json.JsonSerializationException:无法找到默认值类型System.IdentityModel.Tokens.Jwt.JwtPayload使用的构造方法

经过一些搜索之后,这是我的解决方法

在builder.Build()之后将这行代码放入Program.cs中;像这样

      var host = builder.Build();
        _ = new JwtPayload();

BOOM错误消失了,您可以反序列化jwt并制作很棒的东西。

© www.soinside.com 2019 - 2024. All rights reserved.