首页 > 解决方案 > JWT 令牌对 JwtSecurityTokenHandler 有效,但对 JWT IO 无效

问题描述

我的令牌是从 X509Certificate2 生成的

我的问题:

验证通过 JwtSecurityTokenHandler 工作,但当我去 jwt.io 时不行

    public static  bool ValidateToken(string token, X509Certificate2 certificate)
    {
        var tokenHandler = new JwtSecurityTokenHandler();
        var securityKey = new X509SecurityKey(certificate);

        /*var rsaSecurityKey = new RsaSecurityKey(certificate.GetRSAPrivateKey())
        {
            KeyId = "S5669243590045587695"
        };*/

        var validationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = securityKey,
            ValidateAudience = true,
            ValidateIssuer = true,
            ValidAudience = ConfigurationManager.AppSettings["authorizationServer"] + "/realms/" + ConfigurationManager.AppSettings["realm"],
            ValidIssuer = ConfigurationManager.AppSettings["clientID"],
            
            
        };

        SecurityToken validatedToken;
        try
        {
            tokenHandler.ValidateToken(token, validationParameters, out validatedToken);
        }
        catch (Exception _ex)
        {
            return false;
        }

但不是当我使用 jwt.io

在此处输入图像描述

我填写我的公钥

Base64UrlEncode(Encoding.UTF8.GetBytes(_cert.GetPublicKeyString()))

你有想法吗 ?

谢谢

标签: tokenrsax509certificate2

解决方案


推荐阅读