首页 > 解决方案 > 如何找出用于验证 JWT 签名的公钥

问题描述

我正在尝试使用 Apple 实现登录。我有一个 id_token ,它是一个在标头中具有kid值的 jwt 令牌。当我从Apple获取身份验证密钥时,我看到它返回了超过 1 个身份验证密钥。找出这些密钥中哪些可以用于验证 id_token 中的签名的有效方法是什么,因为我不想遍历每个公钥。循环将导致不必要的签名验证失败。

标签: spring-bootoauth-2.0jwtjwt-authapple-sign-in

解决方案


String[] parts = idToken.split("\\."); 
String headerJson = new String(Base64.getUrlDecoder().decode(parts[0]));
System.out.println(headerJson);

这将给出标头,我们可以比较然后验证签名。


推荐阅读