为何App Store Connect API密钥无法在Postman中生成JWT?
以下是你可能遗漏的关键配置,逐一检查:
JWT负载
sub字段错误:你填的"user"无效,这个字段必须填写你的Issuer ID——在App Store Connect的「用户和访问」→「密钥」页面可以找到,是一串形如69a6de72-xxxx-xxxx-xxxx-xxxxxxxxx的唯一标识字符串。JWT头部缺少必填字段:生成JWT时,头部必须包含两个字段:
alg:固定值为ES256(苹果要求的加密算法)kid:你的私钥对应的密钥ID,可从私钥文件名(如AuthKey_ABC123DEF.p8中的ABC123DEF)或App Store Connect密钥页面获取
时间戳有效性问题:
iat和exp必须是当前有效时间戳,且exp不能比iat晚超过20分钟(苹果限制JWT最长有效期)。建议用Postman动态变量自动生成:iat填{{$timestamp}}exp填{{$timestamp + 1200}}
避免手动输入过期的时间戳。
私钥格式错误:在Postman中粘贴私钥时,必须完整保留开头的
-----BEGIN PRIVATE KEY-----和结尾的-----END PRIVATE KEY-----,不要删除、修改或添加多余的空格/换行。密钥权限不足:确认你下载的私钥在创建时,已勾选「用户访问权限」相关的权限(比如读取用户信息的权限),可在App Store Connect「用户和访问」→「密钥」页面查看并编辑密钥权限。
请求头配置错误:调用API时,必须在请求头中添加
Authorization: Bearer <生成的JWT>,确保Postman正确配置了该请求头,没有拼写错误或遗漏。
内容的提问来源于stack exchange,提问作者Don Zacharias
相关产品推荐
相关产品推荐

