我应该在哪里存储我的Node.js应用程序的密钥?
我真的很困难,应该如何隐藏我的钥匙。
我需要隐藏的两个密钥是secrets.crypto和secrets.jwt ...我计划使用Elastic Beanstalk在AWS上托管我的应用程序。
此外,我不确定我会在哪里放置我的密钥以访问Dynamodb和S3存储桶等内容。
exports.generateToken = (type, user) => {
if (!_.isString(type)) {
return undefined;
}
try {
//Turn the json object of the current user's id and the type of token into a string
var stringData = JSON.stringify({
_id: user._id,
type: type
});
//Take the json string and encrypt it with a secret then turn it back into a string
var encryptedData = cryptojs.AES.encrypt(stringData, secrets.crypto).toString();
//Take the encryptedData and turn it into a token with a secret
var token = jwt.sign({
token: encryptedData
}, secrets.jwt);
return token;
} catch(e) {
return undefined;
}
};
在Elastic Beanstalk中,我相信存储这样的密钥的首选方法是通过环境变量。 您可以使用命令eb setenv key=value
来设置环境变量。 关于这方面的更多信息。
要访问您提到的访问DynamoDB和S3的AWS API,您根本不会使用密钥。 为此,您可以将IAM实例配置文件分配给由Elastic Beanstalk创建的EC2服务器。 这是在这里记录。
为开发,生产等所有设备创建一个配置文件,并添加所有密钥init并在需要的地方使用。
config.json file
{
"development": {
"Secret1": "Your Secret Here",
"Secret2": "Your Secret Here",
"db":{
//development database settings here
}
},
"production": {
"Secret1": "Your Secret Here",
"Secret2": "Your Secret Here",
"db":{
//development database settings here
}
}
}
var config = require('./config.json');
config.Secret1;
链接地址: http://www.djcxy.com/p/37921.html
上一篇: Where should I store my secret keys for my Node.js app?
下一篇: Async video streaming in ASP.Net Core Web Api is not working