serverErrorCode:" AUTHENTICATION_FAILED"

时间:2017-02-25 07:05:14

标签: cloudkit

我尝试使用令牌和容器名称来调用API。我收到了验证失败的服务器错误代码,并且在浏览器中调用时,Reason提到了请求需要授权

https://api.apple-cloudkit.com/database/1/iCloud.test.Feedback/development/public/records/modify?ckAPIToken=xxxxxx8584574xxxx

我收到了错误

{" uuid":" abc7575-jhfg956496-86886-fdf"," serverErrorCode":" AUTHENTICATION_REQUIRED","原因":"请求需要授权"," redirectURL":" https://test.apple.com/IDMSWebAuth/auth?oauth_token=xgfhfjf9869456985xxxx" }

任何对云套件js API有所了解的人都可以。提前谢谢。

2 个答案:

答案 0 :(得分:0)

某些CloudKit操作需要用户身份验证。除了ckAPIToken之外,您还需要在路径上包含会话令牌( ckWebAuthToken = [tokenValue] )。

如果您正在实施CloudKit目录身份验证示例,则在用户进行身份验证后,会将令牌另存为浏览器Cookie。在您的情况下,cookie的名称应为“iCloud.test.Feedback”(您可以在浏览器开发工具中查看完整的cookie)。

否则,请检查CloudKit Web服务参考,它提供有关如何形成需要身份验证的请求的信息。以下是有关Web身份验证的特定信息的链接:Getting the Web Authentication Token

请务必注意,令牌需要进行URL编码。 Javascript为此提供了一种方便的方法:encodeURIComponent(string)

答案 1 :(得分:-1)

非常感谢Mr.Billyham先生的回复,这对我执行任务非常有帮助。但是在浏览您分享的链接时,我可以访问Apple Developer登录页面,但是,一旦我登录后,我就无法继续前进了。它显示了一条身份验证错误消息,并且该页面加载也很长时间。

我已按照您的指示将JSON响应redirectURL的第4个参数作为ckWebAuthToken (我收到的参数是uuid:“6dff555”,serverErrorCode:“AUTHENTICATION_REQUIRED”,原因:“请求需要autherization”,redirectURL:“https://idmsa.apple.com/auth/oauth_token=95695kdfjdjdjgfdsds”)

来自您与我分享的回复,我也希望听到您的建议我已经检查了API Access菜单的发布消息单选按钮,除了iCloud开发人员仪表板中的Custome URL,所以我这是错误消息的原因弹出或任何暗示?。