You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native AppleID认证开启「隐藏我的邮箱」后email返回null问题

Apple ID登录开启「隐藏我的邮箱」后返回email为null的解决方法

环境

  • 模拟器:iPhone 14 Pro
  • 使用依赖:@invertase/react-native-apple-authentication

问题描述

我通过以下代码实现Apple ID登录:

let appleAuthRequestResponse = await appleAuth.performRequest({
  requestedOperation: appleAuth.Operation.LOGIN,
  requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME],
})

console.log('Email: ', appleAuthRequestResponse.email) // 获取到null

开启「隐藏我的邮箱」选项后,返回的email = null,该如何解决这个问题?

解决方法

  • 通过currentUser获取转发邮箱
    当用户开启「隐藏我的邮箱」时,Apple会生成一个隐私转发邮箱,这个邮箱不会直接在登录请求的返回结果中,但可以通过appleAuth.currentUser获取。示例代码:
// 执行登录请求后
const currentUser = appleAuth.currentUser;
if (currentUser) {
  console.log('隐私转发邮箱:', currentUser.email);
}
  • 区分首次与后续登录场景
    首次登录时,即使用户开启隐藏邮箱,登录请求返回结果里会包含转发邮箱;但用户后续再次登录(比如退出后重新登录)时,返回结果的email会是null,此时必须通过currentUser获取邮箱信息。

  • 服务器端解析ID Token获取邮箱
    如果需要持久化用户邮箱,建议在服务器端验证Apple返回的ID Token,解析Token中的email字段,这里会返回用户的隐私转发邮箱,同时is_private_email字段会标记该邮箱是否为隐私邮箱,可用于业务逻辑判断。

内容的提问来源于stack exchange,提问作者spatak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:01:44