BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Apple开放了CloudKit的Server-to-Server请求

| 作者 Sergio De Simone 关注 12 他的粉丝 ,译者 王庆 关注 1 他的粉丝 发布于 2016年3月10日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Apple最近宣布OSX和iOS中提供访问Apple云平台的Cloudkit框架开放了Server-to-Server的web请求。这表明Apple解除了CloudKit公共数据库之前只能在iOS和Mac app到苹果的网站之间通信的限制。

CloudKit Server-to-Server的请求在已有的功能上增加了新特性,开发者可以通过这个功能提供一个供用户直接访问他们iCloud数据的web界面。Server-to-Server的请求旨在提供可以访问iCloud公共数据库的权限,也部分提供给开发者可以代替Parse DBaaS的另一个选择,因为Parse DBaaS平台最近宣布将要关闭服务。

为了从服务端进程或脚本读取Cloudkit公共数据库,开发者首先需要用OpenSSL生成一个秘钥对:

openssl ecparam -name prime256v1 -genkey -noout -out eckey.pem

然后到 CloudKit dashboard,找API Access/Server-to-Server Keys将公钥与一个CloudKit容器绑定。一旦公钥被存储,会分配一个keyID,并且在web服务请求的子路径需要加上keyID。Apple提供了一些JavaScript代码示例演示如何使用新方法验证Cloudkit。特别是开发者需要构造一个包含三个参数的字符串:

[Current date]:[Request body]:[Web Service URL]

上面的字符串在request中会用到,正如Apple提供的示例代码一样:

curl -X POST -H "content-type: text/plain" -H 
"X-Apple-CloudKit-Request-KeyID: [keyID]” -H 
"X-Apple-CloudKit-Request-ISO8601Date: [date]" -H 
"X-Apple-CloudKit-Request-SignatureV1: [signature]" -d 
'{"users":[{"emailAddress":"[user email]"}]}'
https://api.apple-cloudkit.com/database/1/[container 
ID]/development/public/users/lookup/email

Stack Overflow上的一些开发者提供了JavaScript、PHP和Python的示例代码。
Cloudkit框架提供给开发者一些服务,包括认证,私有的和公共的数据库,结构化存储比如说基于plist的资源存储。

查看英文原文:Apple Open CloudKit to Server-to-Server Requests


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT