# no_code (/docs/reference/errors/no_code)

请求中未找到代码。



## 这是什么？ [#这是什么]

当请求中缺少授权代码时，会在 OAuth 回调期间发生此错误。
在授权代码流程中，提供者会重定向回你的 `/api/auth/callback` 路由，
并附带一个 `code` 参数（通常还有 `state` 参数）。如果没有 `code`，Better Auth 无法将其兑换为令牌，
因此请求会被拒绝。

## 常见原因 [#常见原因]

* OAuth 流程未正确启动（响应类型错误或自定义 URL 缺少必需参数）。
* 提供者返回了错误而不是代码（例如，用户取消了同意），因此只存在 `error`/`error_description`。
* 查询参数被反向代理、CDN 或框架重写剥离。
* 提供者的回调 URL 不匹配，导致中间重定向丢弃了查询参数。
* 移动/WebView 或深度链接切换打开了一个丢失查询字符串的新上下文。
* 使用了处理程序未读取的响应模式（例如 form\_post 主体与查询参数）。

## 如何解决 [#如何解决]

### 使用标准授权代码流程 [#使用标准授权代码流程]

* 通过 Better Auth 启动流程，确保提供者接收到正确参数，应用程序期望接收 `code`。
* 在提供者设置中，确保你的应用配置为授权代码模式（在适用情况下使用 PKCE）。

### 验证回调 URL 和参数传递 [#验证回调-url-和参数传递]

* 确认提供者配置的重定向 URI 与你的 `/api/auth/callback` 路由完全匹配（协议、主机、路径）。
* 确保基础设施（代理、重写、中间件）保留完整的查询字符串，并且不以丢弃参数的方式重定向。

## 本地调试 [#本地调试]

* 在开发者工具 → 网络中，检查回调请求，确认是否存在 `code` 或 `error` 参数。
* 在开发期间记录回调处理程序接收到的原始查询/请求体，查看具体传入内容。
* 对比开发/预发布/生产环境的凭证和重定向 URI，确保各环境配置一致。

