email_not_found

提供方未返回电子邮件地址。

这是什么?

此错误发生在 OAuth 流程中,当提供方未返回用户的电子邮件地址时。 Better Auth 使用来自提供方的电子邮件来识别或创建用户账户。如果提供方省略了电子邮件(或返回为空/未定义),我们无法继续处理,请求将被拒绝。

此错误仅可能通过 OAuth 提供方出现。在非 OAuth 流程中不会发生。

常见原因

  • 提供方配置中的范围缺失或不足(例如,未请求 email)。
  • 用户的电子邮件是私有的或默认未公开(例如 GitHub 私人电子邮件)。
  • 提供方仅通过单独端点返回电子邮件,且未启用获取它的范围/API 调用(例如 GitHub 的 user:email)。
  • 提供方项目或租户配置错误(同意屏幕、管理员同意、受限声明/属性)。
  • 在不同环境(预览/预发布/生产)之间使用不同的凭据,这些凭据未请求相同范围。

如何解决

请求正确的范围

  • 确保你的提供方配置请求了与电子邮件相关的范围。

验证提供方应用/控制台设置

  • 在提供方的控制台中确认应用有权限请求电子邮件,且同意屏幕允许请求电子邮件。

本地调试

  • 检查发出的授权请求,确认范围是否包含必需的 email
  • 检查回调负载(查询、id_token 声明、用户信息响应),查看是否存在电子邮件声明。
  • 记录回调处理程序接收到的提供方配置文件对象,以验证 email 是否存在。
  • 检查当前使用的是哪个环境的提供方凭据,以及各环境之间的范围是否存在差异。