InvalidLambdaResponseException - неузнаваемый лямбда-вывод при входе без пароля с усилением - PullRequest
0 голосов
/ 26 марта 2019

Я разрабатываю собственный поток авторизации в aws cognito с лямбда-триггерами.

Я использовал пример кода, заданного aws для лямбда-триггеров DefineAuthChallenge_Authentication, CreateAuthChallenge_Authentication и VerifyAuthChallenge_Authentication, это даже объясняется вв этом ответе Пул пользователей AWS Cognito без пароля

Но когда я вхожу из внешнего интерфейса с усилением, он говорит: {code: "InvalidLambdaResponseException", name: "InvalidLambdaResponseException", message: "Unrecognizable lambda output"}

После вызова Определить аутентификацию при создании аутентификациивызов вызывается не в event.request.session, это пустой массив.Атрибут challengeName просто присутствует в event.response, как показано ниже,

triggerSource: 'CreateAuthChallenge_Authentication',
request: 
{ userAttributes: 
{ sub: 'xxxxx-xxxxx-xxxx',
'cognito:user_status': 'CONFIRMED',
name: 'sala',
phone_number_verified: 'true',
'cognito:phone_number_alias': '+947xxxxxxxxx',
phone_number: '+947xxxxxxxxx' },
challengeName: 'CUSTOM_CHALLENGE',
session: [] },

Ниже приведен мой заданный запрос проверки подлинности, `

exports.handler = async event => {
  if (
    event.request.session &&
    event.request.session.length >= 3 &&
    event.request.session.slice(-1)[0].challengeResult === false
  ) {
    // The user provided a wrong answer 3 times; fail auth
    event.response.issueTokens = false;
    event.response.failAuthentication = true;
  } else if (
    event.request.session &&
    event.request.session.length &&
    event.request.session.slice(-1)[0].challengeResult === true
  ) {
    // The user provided the right answer; succeed auth
    event.response.issueTokens = true;
    event.response.failAuthentication = false;
  } else {
    // The user did not provide a correct answer yet; present challenge
    event.response.issueTokens = false;
    event.response.failAuthentication = false;
    event.response.challengeName = 'CUSTOM_CHALLENGE';
  }
  return event;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...