使用Apple登录(在网站上)返回空用户对象

时间:2020-01-09 06:33:03

标签: apple-sign-in

我已经在我的网站上实现了“与Apple登录”。但问题在于它仅适用于我的开发人员的Apple ID。

我试图在同一环境中使用我的个人Apple ID,并且登录过程也运行良好。

但是,当实际用户尝试使用此功能时,Apple会为user字段返回带有空JSON的错误响应,如下所示:

{  
  "state": "20cadefd",  
  "code": "c0f4d18d62a124c9482dec72e9b647f6d.0.nwus.L-JUin6NT_fZPDn4B8oYaA",  
  "user" => "{}"  
}  

如您所见,用户对象为空。

查询https://appleid.apple.com/auth/token也不返回电子邮件声明。据报道,用户看不到可以共享或隐藏其真实电子邮件的通常步骤。

我在这里想念什么?

*更新*

对于id_token,我可以得到它并进行解码,它给出以下内容:

{
  "iss": "https://appleid.apple.com",
  "aud": "<SERVICE ID>",
  "exp": 1578056278,
  "iat": 1578055678,
  "sub": "<SUB ID>",
  "at_hash": "rFEqY8BcGQVfxwFxgAsWsA",
  "auth_time": 1578055675
}

仍然没有电子邮件字段

*更新*

经过进一步测试,似乎只有当用户使用其Touch ID登录时,“用户”字段才为空。当他使用密码时,就可以了。

1 个答案:

答案 0 :(得分:1)

在网站上与Apple实施Sign In时,我遇到了一个非常相似的问题,并且我找到了一个对我有用的解决方案。

当我在桌面浏览器上登录时,一切工作都很好,但是当我在移动设备上登录并使用touch ID时,即使在第一个请求下,Apple也为用户字段返回了一个空的JSON-即使我确保删除了我的我的小应用程序帐户中的授权应用程序访问网站。

在网址中编码多个scope属性的方式存在问题:name+email无效,但是name%20email有用。