当在node.js中进行注册时,AWS cognito给出了serializationException(结构或映射的起始位置出现在未预期的位置)如何解决此问题?

时间:2019-04-24 06:26:14

标签: node.js amazon-cognito

我正在尝试通过AWS cognito添加注册功能,但是在注册时SerializationException如何解决此问题?

我的注册功能如下:

const AmazonCognitoIdentity = require("amazon-cognito-identity-js");
const AWS = require("aws-sdk");
global.fetch = require("node-fetch");

const keys = require("../../config/keys");

AWS.config.update({
    accessKeyId: keys.awsKeys.key,
    secretAccessKey: keys.awsKeys.secret,
    region: keys.region.awsRegionId
});

const poolConfig = {
    UserPoolId: keys.cognito.userPoolId,
    ClientId: keys.cognito.clientId
};

// create a new user pool
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolConfig);

async function signupFunc(userData) {
    console.log('JSON string received : ' + JSON.stringify(userData));

    const emailData = {
        Name: "email",
        Value: userData.email
    };

    const name = {
        Name: "name",
        Value: userData.name
    }

    const password = userData.password;

    const familyname = {
        Name: 'family_name',
        Value: userData.familyname
    }

    return new Promise((resolve, reject) => {
        try {
            var attributeList = [];

            attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute(name));
            attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute(familyname));

            userPool.signUp(emailData, password, attributeList, null, (err, result) => {
                if (err) {
                    console.error(`ERROR : ${JSON.stringify(err)}`);
                    return reject({ status: 0, error: "Error!!!" });
                }

                return resolve({
                    status: "200",
                    message: "Check email and verify!"
                });

            });
        } catch (error) {
            console.log(`ERROR : ${JSON.stringify(error)}`);
            return reject({error: error});
        }
    });
}

module.exports = signupFunc;

执行此方法时,我遇到了异常。

{
   "code":"SerializationException",
   "name":"SerializationException",
   "message":"Start of structure or map found where not expected."
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,因为我错误地将密码作为Object而不是String传递。确保您的密码是 String

Auth.completeNewPassword(user, password, {} ).then(data=> console.log(data)})

这里的用户是Object,密码是String