使用Cognito生成令牌时出现奇怪的问题

时间:2020-06-30 06:25:21

标签: amazon-web-services authentication amazon-cognito

我在使用Cognito sdk生成令牌时遇到问题。 从MochaJest调用时,同一代码的行为有所不同。

require('cross-fetch/polyfill');
var AmazonCognitoIdentity = require('amazon-cognito-identity-js');
process.env["NODE_CONFIG_DIR"] = __dirname + "/config";
const config = require("config");

function getToken(user, secret) {
const authenticationData = {
    Username : user,
    Password : secret,
  };
  const authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
  const poolData = {
    UserPoolId: config.get('Org.userPoolId'),
    ClientId: config.get('Org.clientId')
  };
  const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
  const userData = {
    Username : user,
    Pool : userPool
  };

  const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
  let result = new Promise((resolve, reject) => {
    cognitoUser.authenticateUser(authenticationDetails, {
                    onSuccess: resolve,
                    onFailure: reject }); }).then((result) => {
                      const token = result.getIdToken().getJwtToken();
                      return {
                        token: token, message : null, isSuccessful: true
                      };
                    }).catch(({ message }) => {
                      console.log(message);
                      return {
                        token: '', message: `error: ${message} auth data: ${authenticationData} user pool: ${userPool}`, isSuccessful: false
                    };
                });
    return result;
 }
 exports.getToken = getToken;

传递给authenticateUser调用的对象看起来相同。 Jest情况下唯一的区别是空白的storage字段。

对于Mocha,我得到令牌,对于Jest,我得到错误消息Invalid username of password。 任何提示将不胜感激。

0 个答案:

没有答案