gpt4 book ai didi

oauth-2.0 - 使用带有 RSA 的 JWT 解码 Id token

转载 作者:行者123 更新时间:2023-12-04 16:46:34 25 4
gpt4 key购买 nike

我的客户向我发送了一个 JWT,我需要使用他们的公钥验证这个 JWT。我正在使用 Java 和 JJWT 框架来验证这个 token 。我知道使用 HS256 解码此 token ,但使用 RS256 我不知道。

他们的配置是:

enter image description here

在此处编辑以改进我的问题。我正在使用的 jjwt 解析示例:

        Claims String secret = "-----BEGIN CERTIFICATE-----myx5ckey-----END CERTIFICATE-----"
byte[] dataBytes = Base64.getEncoder().encode(secret.getBytes());
byte[] byteKey = Base64.getDecoder().decode(dataBytes);
X509EncodedKeySpec X509publicKey = new X509EncodedKeySpec(byteKey);
KeyFactory kf = KeyFactory.getInstance("RSA");

PublicKey publicKey = kf.generatePublic(X509publicKey);

Claims body = null;
body = Jwts.parser().setSigningKey(publicKey.getEncoded())
.parseClaimsJws(idToken)
.getBody();


java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format

at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:205)

如何使用我显示的 JWKS 信息验证收到的 token ? (上图)

最佳答案

我解决了我的问题。

String secret2 = "myX5c";
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate certificate = cf.generateCertificate(new ByteArrayInputStream(DatatypeConverter.parseBase64Binary(secret2)));
PublicKey publicKey = certificate.getPublicKey();


Claims body = null;
body = Jwts.parser().setSigningKey(publicKey)
.parseClaimsJws(idToken)
.getBody();

@KcDoD 感谢您的提示。

关于oauth-2.0 - 使用带有 RSA 的 JWT 解码 Id token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com