我正在使用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,保护该信息的最佳做法是什么?
答案 0 :(得分:0)
最佳做法是按照Heroku https://12factor.net/config的建议将您的秘密存储在环境变量中。
因此,将您的私钥导出到您的heroku应用
heroku config:set FIREBASE_PRIVATE_KEY='......'
并将其包含在配置对象中:
"private_key": process.env.FIREBASE_PRIVATE_KEY
奖励一点是,您无需重新部署应用即可更改该密钥。