invalid_callback_request

回调请求无效。

什么是它?

此错误在 OAuth 回调期间抛出,当传入请求无法被解析或缺少必需字段时触发。

常见原因

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

如何解决

验证回调方法和参数

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

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

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

本地调试

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

需要考虑的边缘情况

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

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