NodeJS并在代码库之外存储OAuth凭证?

时间:2016-10-05 20:59:07

标签: node.js oauth

我正在创建一个NodeJS API服务器,它将认证委托给oauth2服务器。虽然我可以将密钥和密钥与源代码一起存储,但我希望避免这样做,因为它感觉像是一种安全风险,并且它与服务器实现更新的生命周期不匹配(密钥/秘密刷新)可能会更频繁地发生。)

我可以将它存储在数据库或可能是一个瞬态json文件中,但我想知道什么是NodeJS世界中被认为是最佳实践或被认为是可接受的。任何建议都表示赞赏。

2 个答案:

答案 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();

我理想情况下希望将文件存储为加密文件,但是现在我只是将它只读存储到主目录中的当前用户。

如果有另一种方式,那被认为是“更好”,那么我对此持开放态度。