Я пытаюсь настроить приложение узла, которое использует AWS Cognito SDK для регистрации / входа / подтверждения / аутентификации пользователя.
В настоящее время я не могу получить ответ от метода signUp (), поскольку кажется, что код работает асинхронно.
Я попытался определить асинхронную функцию register_user (...) и передать необходимые параметры в отдельную функцию register (...) для ожидания ответа signUp, прежде чем продолжить внутри register_user (...).
ЗАЯВЛЕНИЯ ОБ ИМПОРТЕ
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
const CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
const AWS = require('aws-sdk');
const request = require('request');
const jwkToPem = require('jwk-to-pem');
const jwt = require('jsonwebtoken');
global.fetch = require('node-fetch');
РЕГИСТРАЦИОННАЯ ФУНКЦИЯ
function register(userPool, email, password, attribute_list){
let response;
userPool.signUp(email, password, attribute_list, null, function(err, result){
console.log("inside")
if (err){
console.log(err.message);
response = err.message;
return response;
}
cognitoUser = result.user;
});
return "User succesfully registered."
}
РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЯ
var register_user = async function(reg_payload){
email = reg_payload['email']
password = reg_payload['password']
confirm_password = reg_payload['confirm_password']
// define pool data
var poolData = {
UserPoolId : cognitoUserPoolId,
ClientId : cognitoUserPoolClientId
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var attribute_list = [];
// define fields needed
var dataEmail = {
Name : 'email',
Value : email
};
var attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail);
attribute_list.push(attributeEmail);
if (password === confirm_password){
console.log("here")
var result = await register(userPool, email, password, attribute_list);
console.log(result)
console.log("here2")
} else {
return "Passwords do not match."
}
};
Я обнаружил, что даже когда я определил указанную функцию регистра для ожидания, поведение все еще асинхронно.
Есть ли способ заставить синхронно запускать метод signUp внутри функции register_user (...)? Большое спасибо.