是否可以在客户端应用中验证分析服务器正在使用的环境密钥



我想知道是否/如何在客户端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
})

最新更新