如何找出用于验证 JWT 签名的 public 密钥
How to find out which public key to use to verify a JWT signature
我正在尝试使用 Apple 登录。我有一个 id_token,它是一个在 header 中具有 kid
值的 jwt 令牌。当我从 Apple 获取授权密钥时,我看到它 returns 超过 1 个授权密钥。找出可以使用这些密钥中的哪些密钥的有效方法是什么验证 id_token 中的签名,因为我不想遍历每个 public 密钥。循环将导致不必要的签名验证失败。
String[] parts = idToken.split("\.");
String headerJson = new String(Base64.getUrlDecoder().decode(parts[0]));
System.out.println(headerJson);
这将给出 header 我们可以比较然后验证签名。
- 从 identityToken 获取孩子。
[[NSString alloc] initWithData:credential.identityToken
encoding:NSUTF8StringEncoding]
- 然后匹配 apple server
给出的孩子
我正在尝试使用 Apple 登录。我有一个 id_token,它是一个在 header 中具有 kid
值的 jwt 令牌。当我从 Apple 获取授权密钥时,我看到它 returns 超过 1 个授权密钥。找出可以使用这些密钥中的哪些密钥的有效方法是什么验证 id_token 中的签名,因为我不想遍历每个 public 密钥。循环将导致不必要的签名验证失败。
String[] parts = idToken.split("\.");
String headerJson = new String(Base64.getUrlDecoder().decode(parts[0]));
System.out.println(headerJson);
这将给出 header 我们可以比较然后验证签名。
- 从 identityToken 获取孩子。
[[NSString alloc] initWithData:credential.identityToken encoding:NSUTF8StringEncoding]
- 然后匹配 apple server 给出的孩子