使用 Apple 登录(在网站上)returns 一个空的用户对象
Sign In with Apple (on a website) returns an empty user object
我已经在我的网站上实施了 Sign In with Apple。但问题是它只适用于我开发者的 Apple ID。
我尝试在同一环境中使用我的个人 Apple ID,登录过程也 运行 正常。
但是,当真实用户尝试使用此功能时,Apple returns 错误响应 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
}
仍然没有电子邮件字段
* 更新 *
经过进一步测试,"user" 字段似乎只有在用户使用 Touch ID 登录时才为空。他用密码的时候就没事了
我在网站上实施 Sign In with Apple 时遇到了一个非常相似的问题,我找到了一个适合我的解决方案。
当我在桌面浏览器上登录时一切正常,但当我在移动设备上登录并使用触摸 ID 时,Apple 甚至在第一次请求时为用户字段返回一个空 JSON - 即使我确保从我的 appleid 帐户中的授权应用程序中删除我的网站。
在 URL 中编码多个 scope
属性的方式存在问题:name+email
不起作用,但 name%20email
起作用。
我已经在我的网站上实施了 Sign In with Apple。但问题是它只适用于我开发者的 Apple ID。
我尝试在同一环境中使用我的个人 Apple ID,登录过程也 运行 正常。
但是,当真实用户尝试使用此功能时,Apple returns 错误响应 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
}
仍然没有电子邮件字段
* 更新 *
经过进一步测试,"user" 字段似乎只有在用户使用 Touch ID 登录时才为空。他用密码的时候就没事了
我在网站上实施 Sign In with Apple 时遇到了一个非常相似的问题,我找到了一个适合我的解决方案。
当我在桌面浏览器上登录时一切正常,但当我在移动设备上登录并使用触摸 ID 时,Apple 甚至在第一次请求时为用户字段返回一个空 JSON - 即使我确保从我的 appleid 帐户中的授权应用程序中删除我的网站。
在 URL 中编码多个 scope
属性的方式存在问题:name+email
不起作用,但 name%20email
起作用。