我目前正在尝试获取一个为aws cognito身份验证生成两个令牌的脚本,并在我的postman测试中使用它。这是我试图整合的代码......
const AWS = require('aws-sdk');
const CognitoSDK = require('amazon-cognito-identity-js-node');
var authenticationData = {
Username: 'username',
Password: 'password'
};
var authenticationDetails = new CognitoSDK.AuthenticationDetails(authenticationData);
var poolData = {
UserPoolId: 'aws_region',
ClientId: 'aws_user_client_id'
};
var userPool = new CognitoSDK.CognitoUserPool(poolData);
var userData = {
Username: 'username',
Pool: userPool
};
var cognitoUser = new CognitoSDK.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log('access token + ' + result.getAccessToken().getJwtToken());
/*Use the idToken for Logins Map when Federating User Pools with Cognito Identity or when passing through an Authorization Header to an API Gateway Authorizer*/
console.log('idtoken + ' + result.idToken.jwtToken);
},
onFailure: function (err) {
console.log(`Error: ${err}`);
},
});
我可以从命令行运行此文件并返回2个令牌,但是当我尝试通过将前面的代码复制并粘贴到预请求脚本中或将其保存为全局变量并使用时将其合并到邮递员中在eval函数中,我在Postman中得到以下错误:
评估预请求脚本时出错:错误:无法找到模块' aws-sdk'
我错过了什么?
答案 0 :(得分:1)
预先请求脚本在发送请求之前运行,仅此而已。你正在尝试导入一个包,但是Postman不知道那是什么,没有npm本身可以导入那些外部JS文件。有一种解决方法,将外部( aws-sdk )脚本作为环境变量放置然后运行
eval(postman.getGlobalVariable('your_aws_sdk_code'))
AFAIK这是最简单的方式,它是同步的(我相信它比你的方法更适合你的情况)。 Postman仍在努力采用更简单的方法,你可以在github上阅读更多相关信息。