我可以存储 Apple 的公钥来验证令牌签名吗?
Posted
技术标签:
【中文标题】我可以存储 Apple 的公钥来验证令牌签名吗?【英文标题】:Can I store Apple's public key for verifying token signature? 【发布时间】:2019-11-24 09:10:20 【问题描述】:为了与 Apple 实现 OAuth,我们拨打电话GET https://appleid.apple.com/auth/keys
。
(根据https://docs.developer.pv.apple.com/documentation/signinwithapplerestapi/fetch_apple_s_public_key_for_verifying_token_signature中的文档)
结果如下:
"kty": "RSA",
"kid": "1234567890",
"use": "...",
"alg": "RS256",
"n": "...",
"e": "..."
我可以相信这些信息不会在没有通知的情况下更改吗?还是每次我们需要使用 Apple 的公钥时我都应该提出这个请求?
【问题讨论】:
您应该缓存带有“kid”的密钥以供后续使用,并在您看到 JWT 使用不同的“kid”签名时再次获取新密钥。 【参考方案1】:它可以改变,但不会那么频繁。 所以你可以缓存它,并用缓存的来验证它。 然后,当您看到无法使用缓存密钥验证的令牌进入时,请更新您的缓存密钥并再次尝试验证令牌。
【讨论】:
以上是关于我可以存储 Apple 的公钥来验证令牌签名吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何验证 Apple 登录的 Jwt 令牌(后端验证)。如何从 Java 中的模数和指数 (n,e) 生成 RSA 公钥