You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用授权码兑换Apple Token时遇400 invalid_client错误求助

解决Sign in with Apple的invalid_client错误
  • 修正client_id的使用
    后端调用Apple token接口时,必须使用**Service ID(com.superbun.app.service)**作为client_id,而非移动端的bundleId(com.superbun.app)。Apple身份验证规则中,Service ID是后端服务的身份标识,App ID仅用于移动端客户端授权。

  • 重新生成符合规范的client_secret
    client_secret的生成必须严格遵循Apple要求,核心要点:

    • 签名算法强制使用ES256(椭圆曲线签名)
    • JWT头部需包含alg: "ES256"和kid: "你的Apple私钥ID"(从Apple开发者平台下载P8私钥时的对应ID)
    • JWT Payload字段:
      • iss: 你的Apple开发者团队ID
      • aud: 固定为https://appleid.apple.com
      • sub: 必须与使用的client_id一致(即Service ID)
      • exp: 设置合理过期时间(建议生成后1小时内有效,最大不超过6个月)
    • 必须使用Apple提供的P8格式私钥进行签名,禁止转换为其他格式密钥。
  • 确保授权码有效

    • 授权码仅能使用一次,若之前在Postman中重复提交过,需从移动端重新获取新的授权码
    • 授权码有效期为5分钟,需在有效期内调用token接口
  • 检查请求参数与格式

    • 请求方法必须为POST,Content-Type设置为application/x-www-form-urlencoded,不能用JSON格式提交
    • 参数需严格匹配:
      • client_id: 你的Service ID(com.superbun.app.service)
      • client_secret: 正确生成的JWT密钥
      • authorization_code: 移动端获取的原始授权码(无多余空格、换行)
      • grant_type: 固定为authorization_code
    • 后端调用场景下无需填写redirect_uri,但如果Service ID中配置了返回URL,需确保与配置一致(非强制,但配置错误可能导致验证失败)
  • 验证Service ID配置

    • 确认Service ID已开启Sign in with Apple功能
    • 检查Service ID的返回URL是否正确配置为Azure函数域名+路径(如https://dev-fapp-supergoodmoldova.azurewebsites.net/callback)

内容的提问来源于stack exchange,提问作者Josan Cristi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:22:06