如何在heroku上保护Admin SDK密钥

时间:2018-02-14 09:59:03

标签: node.js heroku google-admin-sdk api-key

我正在使用Google的Admin SDK和我的Node后端进行身份验证。由于我打算将它放在heroku上,我想保护我的私人数据。据我所知,保护私钥之类的东西是个好主意。在我的项目中,我从json文件导入配置,如:

  var serviceAccount = require("./AdminSDKFirebase.json");

  admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});

然后我有AdminSDKFirebase.json文件,我放置了配置。

  {
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": ""
}

如果我想将其部署到Heroku,保护该信息的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

最佳做法是按照Heroku https://12factor.net/config的建议将您的秘密存储在环境变量中。

因此,将您的私钥导出到您的heroku应用

heroku config:set FIREBASE_PRIVATE_KEY='......'

并将其包含在配置对象中:

"private_key": process.env.FIREBASE_PRIVATE_KEY

奖励一点是,您无需重新部署应用即可更改该密钥。