按官方文档操作获取密钥,但是返回 options is not defined,官方demo也没这个参数。
// 拼接获取临时密钥的参数
var getCredential = function (options, callback) {
if (options.durationInSeconds !== undefined) {
console.warn('warning: durationInSeconds has been deprecated, Please use durationSeconds ).');
}
var secretId = options.secretId;
var secretKey = options.secretKey;
var proxy = options.proxy || '';
var host = options.host || '';
var region = options.region || 'ap-beijing';
var durationSeconds = options.durationSeconds || options.durationInSeconds || 1800;
var policy = options.policy;
var policyStr = JSON.stringify(policy);
var action = 'GetFederationToken';
var nonce = util.getRandom(10000, 20000);
var timestamp = parseInt(+new Date() / 1000);
var method = 'POST';
var params = {
SecretId: secretId,
Timestamp: timestamp,
Nonce: nonce,
Action: action,
DurationSeconds: durationSeconds,
Name: 'cos-sts-nodejs',
Version: '2018-08-13',
Region: region,
Policy: encodeURIComponent(policyStr),
};
params.Signature = util.getSignature(params, secretKey, method);
var opt = {
method: method,
url: StsUrl.replace('{host}', host || StsDomain),
strictSSL: false,
json: true,
form: params,
headers: {
Host: StsDomain
},
proxy: proxy,
};
// 输出问题,显示 options is not defined
request(opt, function (err, response, body) {
return body;
var data = body && body.Response;
if (data) {
if (data.Error) {
callback(data.Error);
} else {
try {
data.startTime = data.ExpiredTime - durationSeconds;
data = util.backwardCompat(data);
callback(null, data)
} catch (e) {
callback(new Error(`Parse Response Error: ${JSON.stringify(data)}`))
}
}
} else {
callback(err || body);
}
});
};
相似问题