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

AWS Cognito撤销Apple登录遇'invalid client'等错误求助

排查与解决方法

针对invalid client错误

  1. 修正Client Secret生成参数

    • exp字段设置的过期时间超过100小时,Apple要求JWT最大有效期为1小时(3600秒),改成Math.floor(Date.now() / 1000) + 3600
    • 确认iss是Apple开发者账号的Team ID(不是App ID);sub必须和请求时的client_id完全一致(Web应用用Services ID,iOS/macOS应用用Bundle ID)
    • 检查kid是否为Apple后台生成的对应私钥的密钥ID,私钥文件路径正确且格式无误(PEM格式,无多余空格换行)
  2. 保证Client ID一致性

    • 调用auth/token和撤销接口时使用的client_id,必须和生成Client Secret时的sub参数完全匹配,不能混用Bundle ID和Services ID

针对invalid_grant错误

  1. 验证Refresh Token有效性

    • 确认传入revokeToken的是从Appleauth/token接口返回的有效refresh token,而非access token;如果用户在Apple设置中撤销了应用权限,该token会直接失效
  2. 避免Authorization Code重复使用

    • Apple的authorization code仅支持一次使用,若代码中存在重复调用authToken传入同一code的情况,会触发该错误,确保每个code只调用一次
  3. 检查撤销接口参数

    • 调用撤销接口时,必须指定token_type_hint=refresh_token,且token参数传入refresh token;如果你的revokeToken函数未正确设置这些参数,会导致验证失败

通用检查项

  • 所有POST请求的Content-Type必须为application/x-www-form-urlencoded,且参数已通过querystring.stringify正确编码
  • 核对AWS Cognito中Apple身份提供商的配置:Team ID、Services ID、私钥等信息需与代码中的参数完全一致,回调URL需匹配Apple后台的设置
  • 确认环境一致性:不要将生产环境的密钥用于沙箱环境,反之亦然

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:40:33