email_not_found
提供方未返回电子邮件地址。
这是什么?
此错误发生在 OAuth 流程中,当提供方未返回用户的电子邮件地址时。 Better Auth 使用来自提供方的电子邮件来识别或创建用户账户。如果提供方省略了电子邮件(或返回为空/未定义),我们无法继续处理,请求将被拒绝。
此错误仅可能通过 OAuth 提供方出现。在非 OAuth 流程中不会发生。
常见原因
- 提供方配置中的范围缺失或不足(例如,未请求
email)。 - 用户的电子邮件是私有的或默认未公开(例如 GitHub 私人电子邮件)。
- 提供方仅通过单独端点返回电子邮件,且未启用获取它的范围/API 调用(例如 GitHub 的
user:email)。 - 提供方项目或租户配置错误(同意屏幕、管理员同意、受限声明/属性)。
- 在不同环境(预览/预发布/生产)之间使用不同的凭据,这些凭据未请求相同范围。
如何解决
请求正确的范围
- 确保你的提供方配置请求了与电子邮件相关的范围。
验证提供方应用/控制台设置
- 在提供方的控制台中确认应用有权限请求电子邮件,且同意屏幕允许请求电子邮件。
本地调试
- 检查发出的授权请求,确认范围是否包含必需的
email。 - 检查回调负载(查询、
id_token声明、用户信息响应),查看是否存在电子邮件声明。 - 记录回调处理程序接收到的提供方配置文件对象,以验证
email是否存在。 - 检查当前使用的是哪个环境的提供方凭据,以及各环境之间的范围是否存在差异。