Я использую Serverless Framework в своем подходе к аутентификации. Моя цель - создать конечную точку API, которая запускает (через AWS API Gateway) лямбда-функцию, которая создает нового пользователя AWS Cognito. Конечная точка будет иметь настраиваемый авторизатор для ее защиты.
Моя лямбда-функция ниже. При запуске я получаю сообщение об ошибке «NotAuthorizedException: SignUp не разрешен для этого пула пользователей». Есть мысли о том, как авторизовать мою лямбда-функцию для создания нового пользователя?
'use strict';
var AmazonCognitoIdentity = require('amazon-cognito-identity-js');
var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
var CognitoUserAttribute = AmazonCognitoIdentity.CognitoUserAttribute;
module.exports.init = (event, context, callback) => {
console.log('Lambda initiated with event:',event);
// Define AWS Cognito User Pool
var poolData = {
"UserPoolId": process.env['COGNITO_USER_POOL_ID'],
"ClientId": process.env['COGNITO_APP_CLIENT_ID']
};
var userPool = new CognitoUserPool(poolData);
console.log('userPool:',userPool);
// Define User Attributes
var attributeList = [];
var dataEmail = {
"Name": "email",
"Value": "[email protected]"
};
var attributeEmail = new CognitoUserAttribute(dataEmail);
attributeList.push(attributeEmail);
console.log('attributeList:',attributeList);
// Create User via AWS Cognito
userPool.signUp('username', 'password', attributeList, null, function(err, result) {
if(err) {
console.log('err:',err);
callback(err,null);
} else {
console.log('result:',result);
cognitoUser = result.user;
console.log('user name is ' + cognitoUser.getUsername());
callback(null,result);
}
});
};