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

使用Sign In with Apple时App与网页端的audience声明值可以相同吗

差异是否为预期行为

这是完全符合Apple官方设计的预期行为。
iOS端的Sign In with Apple流程绑定你的App Bundle ID,返回的id token中aud(受众)字段标识该token的合法接收方为对应的iOS应用,因此值为你的App Bundle ID,例如样例中的com.domain.app。
网页端的Sign In with Apple走的是独立的服务ID(Services ID)鉴权流程,服务ID本身是Apple开放平台下独立的身份凭证,因此返回的id tokenaud字段自然为服务ID的标识符,例如样例中的com.domain.siwa。

是否可以实现两端aud完全一致

无法实现。
Apple开发者平台规则要求Bundle ID和服务ID的标识符全局唯一,不能重复使用同一个值,因此不存在让两端返回的id tokenaud字段完全相同的合法方案。

推荐的校验方案

不需要额外判断id token的来源,你可以直接将两个合法的aud值加入服务端的校验白名单:

  • 预先在服务端配置允许的aud列表:["com.domain.app", "com.domain.siwa"]
  • 校验id token时,仅需要判断token中的aud值是否属于该白名单,即可完成aud校验,逻辑复杂度和单一aud校验几乎无差异。

注意其他标准校验项需正常执行:iss字段必须为https://appleid.apple.com、token签名验证通过、未超出过期时间、如果流程中传递了nonce参数也要对应校验。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:00:04