email_not_found

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

这是什么?

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

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

常见原因

  • 提供方配置中缺少或范围不足(例如,未请求 email)。
  • 用户的电子邮件是私密的,默认不显示(例如,GitHub 私密邮箱)。
  • 提供方仅通过单独的端点返回电子邮件,但未启用相应的范围/API 调用以获取电子邮件
    (例如,GitHub 的 user:email)。
  • 提供方项目或租户配置错误(同意屏幕、管理员同意、受限的声明/属性)。
  • 环境之间使用了不同的凭据(预览/测试/生产),而这些凭据请求的范围不相同。

如何解决

请求正确的范围

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

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

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

本地调试

  • 检查发出的授权请求,确认其范围中包含所需的 email
  • 检查回调的负载(查询参数,id_token 中的声明,userinfo 响应)以查看是否存在电子邮件声明。
  • 记录回调处理程序接收的提供方用户资料对象,验证是否包含 email
  • 检查当前使用的是哪个环境的提供方凭据,以及各环境中的范围是否一致。