我的问题是关于在哪里以及如何:
在这种情况下,我正在处理Algolia Admin API密钥(但目的是以相当通用的方式提出这个问题)。
为了让我的应用程序正常工作,我需要根据某些用户操作更新我的Algolia索引(需要管理员API密钥才能执行此操作)。
我知道我不应该将我的Admin API密钥暴露给前端(即不要将它放在我的app.js文件中)。如何安全地将API管理密钥传递到我的app.js文件,以便我可以更新我的Algolia索引?
我遇到的一些事情:
- 我应该把它隐藏在config.json
文件中吗?我无法弄清楚如何在我的js中使用从配置文件中导出的信息(这可能会破坏目的?)。我读了this
- 同时在Firestore文档中,它提及“与Apps和Algolia合作”,“App ID和API Key存储在函数配置变量中”。如何将API密钥存储在配置变量中?
- 我读this关于使用环境变量,并将它们导出到app.js文件。但是,如果我然后将app-env文件推送到服务器(我假设我需要为了让app.js文件读取API密钥),那么如何将其放入文件中更安全?
您无法通过任何机制将密钥提供给客户端,并保密。
构建一个Web服务(使用您选择的服务器端语言,使用适当的任何身份验证)并编写您自己的API以允许执行有限的操作选择。然后,您的Web服务充当Algolia的客户端。
经过一番研究后,这就是我的决定。
我需要创建一个单独的.js文件,其中包含Admin API Key和侦听数据库更改的函数,并对Algolia进行适当的更新(这很明显)。
接下来我需要运行该文件。我相信我有两个选择: