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

Supabase Apple OAuth在Next.js Web端配置失败求助

Apple OAuth 登录报错 "invalid_request Invalid client id or web redirect url" 排查方案

根据你提供的配置信息,结合Apple OAuth与Supabase的规则,以下是核心排查方向:

1. 重定向URL必须完全匹配(细节不能错)

Apple对重定向URL的校验极其严格,任何字符差异都会导致报错:

  • 检查Apple开发者后台**服务ID(Service ID)**的"Sign in with Apple"配置中,添加的重定向URL是否和客户端传的redirectTo完全一致,包括:
    • 协议:本地开发用http://localhost:3000,生产环境必须用https
    • 路径末尾斜杠:你的redirectTo是http://localhost:3000/auth/callback/(带末尾斜杠),Apple后台必须同步配置这个带斜杠的地址,不能是http://localhost:3000/auth/callback
  • 同时确认Supabase控制台的Apple OAuth配置里,"重定向URL"字段也和上述地址完全一致

2. 客户端ID必须用服务ID而非主App ID

Web端Apple登录要求使用**服务ID(Service ID)**作为OAuth客户端ID:

  • 检查Supabase控制台Apple配置中的"客户端ID",是否填写的是你创建的服务ID(com.{project}.web.auth.service),而非主App ID(com.{project}.web)
  • 确认Apple开发者后台中,该服务ID已启用"Sign in with Apple"功能,且关联了正确的主App ID

3. Apple密钥的权限与关联配置

确认上传到Supabase的P8密钥满足要求:

  • 创建Apple密钥时,必须勾选"Sign in with Apple"权限,且关联了对应的主App ID(com.{project}.web)
  • Supabase控制台中填写的"Apple账户ID"是你的Team ID,"密钥ID"是该P8密钥的ID,确保三者(密钥、Team ID、密钥ID)一一对应

4. 本地开发的特殊注意事项

如果是本地测试:

  • Apple允许localhost作为重定向URL,但必须在Apple开发者后台的服务ID中明确添加http://localhost:3000/auth/callback/(和客户端地址完全一致)
  • 测试时先去掉next参数,只用基础回调地址,排除参数编码问题的干扰

5. 客户端代码的细节调整

检查redirectTo的生成逻辑:

  • 当前代码在无next参数时会自动添加末尾斜杠,若Apple后台配置的是无斜杠的auth/callback就会不匹配
  • 可以先手动固定redirectTo为http://localhost:3000/auth/callback(去掉末尾斜杠),同步更新Apple后台和Supabase的配置后再测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:25:08