1

我正在尝试使用他们的 Web 服务和 postMessage API 令牌检索 CloudKit 的 Web 身份验证令牌。根据Apple 的文档,令牌应该作为“数据”对象的一部分通过消息回调返回,但我得到的只是 ckSession 变量。似乎文档有误,或者我遗漏了一些东西。

在此步骤之后是否应该调用任何其他 API 来检索 Web 身份验证令牌?我试着天真并通过 ckSession 来记录列表 API,但这似乎不起作用。此外,如果我使用不同的令牌检索方法,例如自定义 URL 方案,则可以正确检索令牌。这个问题似乎只与 postMessage 选项有关。

“允许的来源”设置为“所有域”,我从 localhost 调用 auth API。我正在运行 Windows 10 并且正在使用 Chrome 浏览器(如果它在这里意味着什么,可能不是)。

几年前好像有人遇到过同样的问题,并且在 Apple 论坛上发布过,但当时并没有太多的爱。

任何帮助将不胜感激。另外,如果需要,我可以提供更多信息。

4

2 回答 2

1

据我了解,您只能ckWebAuthToken通过前端 JavaScript API 获取网络身份验证令牌 ( )。它应该在用户使用他们的 Apple ID 登录后返回。然后,您可以POST将该值存储到您的后端应用程序中并以某种方式存储它(可能作为会话变量)。

您可以在此页面上阅读有关获取网络身份验证令牌的更多信息。

如果你从那以后学到了更多关于解决这个问题的知识并且比我知道的更多,我会全神贯注。:)

于 2018-08-25T03:51:42.350 回答
1

同样,我从来没有设法ckWebAuthToken用 postMessage 方法拦截。我怀疑它只能与setUpAuthJS SDK 中生成的登录按钮一起使用。

因此,我改为重定向到托管在某处的我的页面,在那里我从查询字符串中获取令牌并将其发送到我的主机应用程序,全部使用 JavaScript。笨重但有效!:)

于 2019-08-16T13:15:58.993 回答