CloudKitJS服务器到服务器配置
CloudKitJS Server to Server Configure
我很难让它工作。我一直得到以下错误:
[Error: No key provided to sign]
这是我的配置代码:
CloudKit.configure({
services: {
fetch: fetch
},
containers: [{
containerIdentifier: 'iCloud.io.shakd.Command-Center',
environment: 'development',
serverToServerKeyAuth: {
keyID: "MyKeyId",
privateKeyFile: "./eckey.pem",
privateKeyPassPhrase: "MyPassPhrase"
}
}]
})
另外,什么是privateKeyPassPhrase?是在终端中生成的代码吗?
苹果公司在CloudKit Catalog:An Introduction to CloudKit(Cocoa和JavaScript)上的示例代码显示,privateKeyFile
所需的语法是将__dirname
(执行Node脚本的目录)前置到eckey.pem
文件。来自config.js
:
serverToServerKeyAuth: {
keyID: '<insert key ID>',
privateKeyFile: __dirname + '/eckey.pem'
}
第二个关键信息是,在配置CloudKit之后,您必须使用setUpAuth()
显式登录。来自index.js
:
var container = CloudKit.getDefaultContainer();
var database = container.publicCloudDatabase; // We'll only make calls to the public database.
// Sign in using the keyID and public key file.
container.setUpAuth().then(function (userInfo) {
println("userInfo", userInfo);
return database.performQuery({ recordType: 'Test' });
}).then(function (response) {
println("Queried Records", response.records);
}).catch(function (error) {
console.warn(error);
});
在我的JavaScript代码中进行了这两次更改后,我的脚本通过了读写CloudKit数据库的身份验证。
如果您的privateKeyFile是用密码短语加密的,那么您只需要privateKeyPassPhrase。
错误
[Error: No key provided to sign]
直接来自节点的加密模块。
看起来你的eckey.pem文件不包含私钥。您可以尝试以下方法进行验证:
var fs = require('fs');
var crypto = require('crypto');
var privateKey = fs.readFileSync('./eckey.pem', 'utf8');
var signer = crypto.createSign('RSA-SHA256');
signer.update('message');
console.log(signer.sign(privateKey, 'base64'));
如果有效,那么您的配置应该是:
CloudKit.configure({
services: {
fetch: fetch
},
containers: [{
containerIdentifier: 'iCloud.io.shakd.Command-Center',
environment: 'development',
serverToServerKeyAuth: {
//that looks suspicious, please use the real keyID
keyID: "MyKeyId",
privateKeyFile: "./eckey.pem"
}
}]
})
相关文章:
- Javascript配置服务器URL并将其存储
- 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用
- 将图片上传到服务器,服务器调整图片大小并进行压缩,最后将结果发送到源CDN
- 配置服务器端CORS:ExpressJS No“;访问控制允许起源”;在场
- 在Sharded服务器配置中上传PHP文件
- CloudKitJS服务器到服务器配置
- 服务器到服务器套接字IO消息
- 关于服务器配置的主干和推送状态
- 向 Google 日历 API 发出服务器到服务器的请求
- 你如何构建节点.js动态Web服务器?(升级服务器,恕不另行通知)
- Netscape企业服务器和服务器端JavaScript(SSJS)与Node.js
- TinyMCE Javascript文件500生产服务器内部服务器错误
- 需要多人游戏服务器配置的建议
- 客户端应该调用服务器还是服务器应该调用客户端?我错过了什么?
- WEBRTC:在RtcPeerConnection创建后添加stun/turn服务器配置
- 我可以在哪里下载eclipse的基本服务器配置
- Node.js用于服务器到服务器的通信
- 用Angular重新配置服务器,但不能正常工作
- JS Modal不显示输入字段中的变量——服务器配置要求
- 为什么要 gulp-gzip 以及我可以在不配置服务器的情况下提供 gzip 内容吗?