如何限制客户端可见的解析配置参数?

How to restrict parse config parameter visible to clients?

是否有任何方法可以删除客户端(Android、iOS)通过 ParseConfig.getInBackground(...) 接收的某些 ParseConfig 参数?

想法是某些配置参数在云代码中的服务器端使用,不应该对客户端可见,而其他参数用于配置客户端。

  • 要在您的云代码中拥有最新的设置,您需要每次都调用 Parse.Config.get(),但 Parse.Config.get() 的主要行为是检索所有配置对象,它不是确实是一个优化的解决方案。
  • Parse.Config 旨在成为一种简单、快速和轻量级的解决方案,用于获取客户端配置(public 数据)。如果您需要存储 sensitive 配置,将 public 和敏感数据存储在同一位置并不是一个好主意。

针对您的用例的建议

// Not optimized: The full config is pulled from DB
const config = await Parse.Config.get()

// Not tested: Optimized and secure, (name field should be indexed), InternalConfig need to be protected by CLP
const getInternalConfig = async (...args) => {
    const config = {}
   (await (new Parse.Query('InternalConfig'))
        .containedIn('name', args)
        .find({useMasterKey: true}))
        .forEach(result => config[result.get("name")] = config[result.get("value")]
    return config
}

const optimizedConfig = await getInternalConfig("parameter1", "parameter4" )

此后已通过允许将单个 Parse Config 参数限制为只能使用主密钥访问来解决。

参见https://github.com/parse-community/parse-server/issues/5930