gpt4 book ai didi

java - 在 Java 上验证 AWS id token

转载 作者:行者123 更新时间:2023-11-30 06:49:19 25 4
gpt4 key购买 nike

我在亚马逊中使用 Cognito 对我的移动用户进行身份验证,一旦他们完成登录,Cognito 就会提供一组 token ,我在后端使用 id token 。我已按照在您的 Web API 中使用 ID token 和访问 token 部分中的步骤进行操作 https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html我卡在了第 6 步。

据我所知,我从 Amazon 获取字符串中的模数和指数,我必须用它们构建一个 PublicKey,以验证 JWT 签名。

我不知道如何使用字符串中的这两个参数构建公钥。

最佳答案

我终于找到了解决方法,aws 论坛中有一个示例 https://forums.aws.amazon.com/message.jspa?messageID=728870但代码在 Kotlin 中。我只是将它移植到 java 并进行了一些测试,我最终验证了我的 JWT 签名:

byte[] decodedModulus = Base64.getUrlDecoder().decode(yourModulus);

byte[] decodedExponent = Base64.getUrlDecoder().decode(yourExponent);

BigInteger modulus = new BigInteger(1, decodedModulus);
BigInteger exponent = new BigInteger(1, decodedExponent);

RSAPublicKeySpec publicKeySpec = new RSAPublicKeySpec(modulus, exponent);
KeyFactory keyFactory;

keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);

JWSVerifier verifier = new RSASSAVerifier((RSAPublicKey) publicKey);
Boolean verify = parsedToken.verify(verifier);}

希望对遇到同样问题的人有所帮助。

关于java - 在 Java 上验证 AWS id token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010211/

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