我正在创建一个NodeJS API服务器,它将认证委托给oauth2服务器。虽然我可以将密钥和密钥与源代码一起存储,但我希望避免这样做,因为它感觉像是一种安全风险,并且它与服务器实现更新的生命周期不匹配(密钥/秘密刷新)可能会更频繁地发生。)
我可以将它存储在数据库或可能是一个瞬态json文件中,但我想知道什么是NodeJS世界中被认为是最佳实践或被认为是可接受的。任何建议都表示赞赏。
答案 0 :(得分:0)
一种选择是将环境变量设置为部署的一部分,然后在全局process对象的代码中访问它们:
var clientId = process.env.CLIENT_ID
var clientSecret = process.env.CLIENT_SECRET
答案 1 :(得分:0)
由于我想提供可以存储多个值的东西,我只是创建了一个JSON文件,然后将其读入一个名为keystore的模块(使用ES6类):
class KeyStore {
load() {
// load the json file from a location specified in the config
// or process.env.MYSERVER_KEYSTORE
}
get (keyname) {
// return the key I am looking for
}
}
module.exports = new KeyStore();
我理想情况下希望将文件存储为加密文件,但是现在我只是将它只读存储到主目录中的当前用户。
如果有另一种方式,那被认为是“更好”,那么我对此持开放态度。