我正在尝试使用NodeJS从Vault读取值。我在这里发帖以确保我的方法是正确的。
使用https://github.com/kr1sp1n/node-vault库,我有以下代码片段:
var params = {
apiVersion: 'v1',
endpoint: "https://localhost:8200",
token: "MY_TOKEN"
};
var vault = require("node-vault")(params);
vault.read('secret/mysecret/foo').then(v => {
console.log(v);
}).catch(e => console.error(e));
这会向我返回以下JSON块:
{ request_id: 'MY_ID',
lease_id: '',
renewable: false,
lease_duration: 100,
data: { value: 'MY_PASSWORD' },
wrap_info: null,
warnings: null,
auth: null }
具体来说,我需要获取data.value的值(即我需要获取'MY_PASSWORD'。
我会在'then'块中执行JSON解析而不是像我目前那样将JSON打印到控制台日志吗?
答案 0 :(得分:0)
是的,因为vault.read()
是异步的,您需要访问并解析then()
vault.read('secret/mysecret/foo').then(v => {
let parsed = JSON.parse(v);
let pw = parsed.data.value //=> 'MY_PASSWORD'
}).catch(e => console.error(e));
显然,您可能希望进行一些错误检查,以确保您拥有良好的json数据等。
答案 1 :(得分:0)