如何生成 JWT 令牌 apple connect iOS

How to Generate JWT token apple connect iOS

提问人:CHAULVET Chris 提问时间:1/31/2019 更新时间:4/12/2023 访问量:2478

问:

我正在尝试为 Apple Connect 生成 JWT 令牌,但“验证签名”字段中似乎缺少某些内容。

  1. 在 API Apple Store Connect 仪表板中,我只能下载“私钥”名称 AuthKey_{kid}.p8。
  2. https://jwt.io/ 中,我选择“ALGORITHM”作为“ES256”,然后在“SIGNATURE”部分出现两个字段: a) 公钥或证书 b) 私钥或证书 (AuthKey_{kid}.p8)

问题: - 我确实有“无效签名”消息显示... - 我不知道在哪里可以找到“公钥或证书”

我正在关注这些文档: - https://developer.apple.com/documentation/appstoreconnectapi/generating_tokens_for_api_requests - https://medium.com/xcblog/generating-jwt-tokens-for-app-store-connect-api-2b2693812a35

您知道如何解决找到“公钥”的问题吗?

谢谢你的帮助,

IOS 接口 IOS7 JWT

评论

0赞 Tometoyou 6/7/2019
你解决了吗?
2赞 Andrea Gorrieri 1/14/2020
我在 jwt.io 使用为使用 Apple 登录而生成的 p8 密钥时也遇到了这个问题。生成签名的 JWT 不需要公钥,但是,提供的 p8 私钥似乎不适合生成签名的 ES256 令牌。你解决了问题吗?
0赞 CHAULVET Chris 1/18/2020
您好,是的,我决定使用这个组件: web-token.spomky-labs.com 有了这个组件,我就可以使用证书文件来生成令牌。下面是一个示例(没有证书文件):web-token.spomky-labs.com/the-components/signed-tokens-jws/...

答:

12赞 Abdullah Malik 7/7/2020 #1

.p8 文件包括私钥和公钥。您需要使用 OpenSSL 提取它们。

要获取私钥,请执行以下操作:

$ openssl ec -in AuthKey.p8 -out AuthKey_private.p8

要获取公钥,请执行以下操作:

$ openssl ec -in AuthKey.p8 -pubout -out AuthKey_public.p8

使用通过这些命令生成的密钥,在 jwt.io 上验证了签名。