Parse Server 正在使用的环境密钥是否可以在客户端应用程序中进行验证?

Can the environmental keys that Parse Server is Using be verified inside the client app?

我想知道 if/how Parse-Server 环境变量是否可以在客户端 IOS App.

中验证

对于我们这些还不习惯后端系统的人来说,能够在测试期间通过客户端验证后端 Parse-Server 实际上使用了正确的环境密钥会很有用。

如果您正在测试设置解析服务器的密钥,例如 appId、clientKey、masterKey,您可以实施验证云代码。

一旦你使用了appId(或者你设置了clientKey),你就可以调用这个函数。否则,你会得到错误。您不能在 client-sdk 中使用 MasterKey。如果你还想测试它,你可以在你的客户端上用 masterKey 实现一个 rest api。但是 masterKey 不应该出现在客户端,你应该避免用户触发这个,或者有人可能会得到你的 masterKey。

Parse.Cloud.define("verify", function(request, response) {
    if(request.master==true){
        response.success(true);
    }else{
        response.error(new Error('MasterKey not matched'));
    }
});

已编辑

通过实现一个globalConfig对象,随心所欲地验证它。

这是一个示例。

globalConfig.js

var globalConfig = {};

globalConfig.verify = function(key) {
    return globalConfig.keys.testKey==key;
}

module.exports = globalConfig;

index.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));
});

或者您可以使用快递 post

app.post('/test', function(req, res) {
    //verify and response
})