【问题标题】:ckWebAuthToken retrieval via postMessage using CloudKit Web ServicesckWebAuthToken 使用 CloudKit Web 服务通过 postMessage 检索
【发布时间】:2018-11-06 16:31:01
【问题描述】:

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

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

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

好像有人had the same issue a couple of years ago and it was posted on the Apple forums,但当时还没有多少爱。

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

【问题讨论】:

    标签: cloudkit cloudkit-web-services


    【解决方案1】:

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

    您可以阅读有关获取网络身份验证令牌 on this page 的更多信息。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 2017-12-27
        • 2017-03-11
        • 2014-09-07
        • 1970-01-01
        相关资源
        最近更新 更多