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

如何在Apple登录响应中查找隐藏或显示邮箱参数(附登录弹窗截图)

Apple登录响应中邮箱参数的获取与判断方法

一、前端(客户端)直接获取

不管是iOS端用AuthenticationServices框架,还是Web端用Apple ID JS SDK,登录成功的响应里都能拿到邮箱相关参数:

  • 如果用户选了共享真实邮箱,email字段就是用户的真实邮箱地址;如果选了隐藏邮箱,email是Apple生成的代理邮箱(格式类似xxx@privaterelay.appleid.com)
  • 还有个直接标记状态的字段:Web端是is_private_email,iOS端是privateEmail,直接判断是否为隐藏邮箱
  • Web端代码示例:
AppleID.auth.signIn().then((response) => {
  const userInfo = JSON.parse(response.user);
  console.log("用户邮箱:", response.email);
  console.log("是否为隐藏邮箱:", userInfo.is_private_email === "true");
});

二、后端解码令牌获取

前端会把登录后的id_token传给后端,后端解码这个JWT就能拿到完整的邮箱信息:

  • 用对应语言的JWT工具库(比如Node.js的jsonwebtoken、Java的JJWT)解码id_token,Payload里包含:
    • email:真实/代理邮箱地址
    • is_private_email:布尔值,直接标识是否是隐藏邮箱
    • email_verified:隐藏邮箱默认是true,真实邮箱则根据用户验证状态而定
  • Node.js解码示例:
const jwt = require('jsonwebtoken');
const decodedToken = jwt.decode(idToken, { complete: true });
const payload = decodedToken.payload;
console.log("邮箱:", payload.email);
console.log("是否隐藏:", payload.is_private_email);

三、注意点

  • 只有首次登录时,前端才会返回email字段;后续登录如果用户没改隐私设置,前端可能拿不到,得靠后端解码id_token获取
  • Apple生成的代理邮箱和你的应用绑定,用户可以在Apple ID管理页查看或删除这些代理地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:10:00