我可以存储 Apple 的公钥以验证令牌签名吗?

jle*_*hon 10 oauth public-key-encryption ios apple-sign-in sign-in-with-apple

为了与 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": "..."
}
Run Code Online (Sandbox Code Playgroud)

我可以相信这些信息不会在没有通知的情况下更改吗?或者每次我们需要使用 Apple 的公钥时我都应该提出这个请求吗?

Ham*_*dar 0

它可以改变,但不会那么频繁。所以你可以缓存它,并用缓存的验证它。然后,当您看到无法使用缓存密钥验证传入的令牌时,请更新缓存密钥并再次尝试验证令牌。