iOS应用转开发者账户时Apple登录迁移接口invalid_request问题咨询
Apple Sign In迁移时
usermigrationinfo接口invalid_request问题解决 sub参数的明确说明
sub是Apple为每个用户生成的唯一用户ID,和Firebase的User ID、开发者Team ID完全无关。这个ID是用户首次通过Apple Sign In授权你的应用时,Apple系统生成的固定值,不会随应用账户迁移发生变化。
从Firebase获取正确sub值的方法
Firebase在用户通过Apple Sign In登录后,会将Apple的原始用户信息存储在Firebase User的providerData集合中,你需要从中提取:
- 遍历用户的
providerData数组,筛选出providerId为apple.com的条目 - 该条目中的
uid字段就是你需要的sub参数
示例Swift代码:
if let appleProviderData = Auth.auth().currentUser?.providerData.first(where: { $0.providerID == "apple.com" }) { let appleSub = appleProviderData.uid // 使用此appleSub作为参数调用usermigrationinfo接口 }
排查invalid_request的其他常见原因
- 签名正确性:调用接口必须用旧开发者账户的密钥生成ES256算法的JWT签名
- 参数完整性:除
sub外,需确保client_id为旧账户下的App ID,team_id为旧账户Team ID,transfer_sub为新账户Team ID - 请求头格式:
Authorization头必须严格遵循Bearer {JWT_TOKEN}格式
内容的提问来源于stack exchange,提问作者Tom3652
相关产品推荐
相关产品推荐

