spring-boot - 如何找出用于验证 JWT 签名的公钥
问题描述
我正在尝试使用 Apple 实现登录。我有一个 id_token ,它是一个在标头中具有kid
值的 jwt 令牌。当我从Apple获取身份验证密钥时,我看到它返回了超过 1 个身份验证密钥。找出这些密钥中哪些可以用于验证 id_token 中的签名的有效方法是什么,因为我不想遍历每个公钥。循环将导致不必要的签名验证失败。
解决方案
String[] parts = idToken.split("\\.");
String headerJson = new String(Base64.getUrlDecoder().decode(parts[0]));
System.out.println(headerJson);
这将给出标头,我们可以比较然后验证签名。
推荐阅读
- node.js - Yarn - Node Sass 还不支持我当前的环境
- apache-nifi - 如何通过 NIFI API 初始化处理器
- intellij-idea - 如何将 Kotlin 模块导出到 .jar
- amazon-redshift - AGE 函数导致以下错误:错误:Redshift 表不支持指定的类型或函数(每个 INFO 消息一个)
- model-view-controller - MVC中模型和控制器之间的混淆
- mongodb - 在群聊应用程序上选择猫鼬模式?
- python - 在 numpy 数组的第三维上使用 numpy argmax
- http - 如何处理没有 Transfer-Encoding 或 Content-Length 标头的请求消息?
- python - 在 Django 中向后迁移 DeleteModel 时出错
- jquery - JQuery 将每个函数加倍