我想知道是否/如何在客户端IOS应用程序中验证解析服务器环境变量。
对于我们这些对后端系统还不满意的人来说,能够在测试期间通过客户端验证后端 Parse-Server 是否确实使用了正确的环境密钥会很有用。
如果您正在测试设置解析服务器的密钥,例如appId,clientKey,masterKey,则可以实现验证云代码。
使用 appId (或设置了 clientKey) 后,可以调用此函数。否则,您将收到错误。您不能在客户端 sdk 中使用万能密钥。如果你仍然想测试它,你可以在客户端上使用主密钥实现一个 rest api。但是万事万能密钥不应该出现在客户端,你应该避免用户触发这个,否则有人可能会得到你的主密钥。
Parse.Cloud.define("verify", function(request, response) {
if(request.master==true){
response.success(true);
}else{
response.error(new Error('MasterKey not matched'));
}
});
编辑
通过实现 globalConfig obj,根据需要对其进行验证。
下面是一个示例。
全局配置.js
var globalConfig = {};
globalConfig.verify = function(key) {
return globalConfig.keys.testKey==key;
}
module.exports = globalConfig;
索引.js(部分)
var globalConfig = require('./globalConfig.js');
var initObj = {
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed
liveQuery: {
classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
},
testKey: "this is test"
}
var api = new ParseServer(initObj);
globalConfig.keys = initObj;
然后你可以使用 globalConfig.verify() 来检查你的密钥
云代码示例
var globalConfig = require('../globalConfig.js');
Parse.Cloud.define('verify', function(req, res) {
res.success(globalConfig.verify(req.params.testKey));
});
或者您可以使用特快专递
app.post('/test', function(req, res) {
//verify and response
})