我正在与一个网关开发人员合作,该开发人员将为我传递一个JWE,其中包含一些由对称密钥签名和加密的数据,并且我们无法让我的.net核心代码接受JWE。 我们不确定是令牌的产生是问题,还是下面的代码是问题。
当我们通过签名和加密的令牌时,我们得到:
IDX12723:无法将有效负载“ System.String”解码为Base64Url编码的字符串。 jwtEncodedString:''。
var signedAndEncryptedToken = "eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..ZZInnxcaK6h354IgMGAAqg.ztKUt4jcuHgzPPy0WAjh2tTkQ9fabGBll5njEvzg5cWxXtV18GY1HESLpM6ySAlASo2ex6Qt4NNcXLbAhVPGvveOCYd2pMbROSQQ1DOmpjJTnuU-mFtC0YmGXHEKMRl5s_VJdQfGUVNu5pSjvc9qWFYWY0W4gMonEbOuRskldw9kUW2rfwipB2dOcnnlh8VD.513r19owZHe_wYM4OInkew";
var encryptionKey = "2t0Ff6on2UCRw6AA4SpL3qlX2LFNS8TW";
var key = new SymmetricSecurityKey(Encoding.Default.GetBytes(encryptionKey));
var handler2 = new JwtSecurityTokenHandler();
var validations2 = new TokenValidationParameters
{
TokenDecryptionKey = key,
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = false,
RequireExpirationTime = false,
ClockSkew = TimeSpan.Zero,
ValidateIssuerSigningKey = true,
IssuerSigningKey = key
};
var claims2 = handler2.ValidateToken(signedAndEncryptedToken, validations2, out var tokenSecure2);