invalid_callback_request

回调请求无效。

什么是它?

当传入的 OAuth 回调请求无法解析或缺少必需字段时,会抛出此错误。

常见原因

  • 查询参数或请求体参数被反向代理、CDN 或框架重写时剥离。
  • 参数双重编码或编码不正确导致解析失败。
  • 提供商处回调 URL 不匹配,触发中间重定向,导致参数丢失。
  • 中间件或路由分组将请求发送到意图之外的处理程序。
  • 非常长的 URL 被中间环节截断(某些代理下虽少见但可能发生)。

如何解决

验证回调方法和参数

  • 确保您的提供商配置了与路由预期方法相符(常见为授权码流程中使用带查询参数的 GET 方法)。
  • 确认回调包含必需参数(例如,标准 OAuth 流程中的 codestate)。

通过基础设施保持查询/请求体完整

  • 检查反向代理(如 Vercel、Cloudflare、Nginx)和应用重写是否完整转发查询字符串和请求体。
  • 如果中间件拦截或重写回调,请确保它无修改地转发所有参数。

本地调试

  • 在开发者工具的网络(Network)中,检查回调请求,确认参数存在且格式正确。
  • 比较开发/测试/生产环境凭据,确保不存在环境差异导致流程或终端节点不同。

需要考虑的边缘情况

  • 移动端/WebView 或深度链接流程在交接时可能会丢失查询参数。
  • 有些提供商可能通过片段(fragment)返回参数;服务器不会接收到片段 — 确保提供商使用查询或请求体来处理服务器端回调。
  • 多次重定向(包括 HTTP → HTTPS)若配置不当会丢失参数。

回调参数通常由 Better Auth 自动处理。如果出现此错误,通常表示手动访问 /api/auth/callback 路由、 代理/重定向剥离了参数,或集成配置不匹配。请仔细检查提供商设置和基础设施重写,确保完整请求 不变地到达回调。