Hy, я реализую пользовательский поток аутентификации в Cognito User Pool. Мне удалось обработать триггеры Define- и CreateAuthChallenge, но не VerifyAuthChallenge.
Я использую эту документацию в качестве руководства: Проверка ответа на запрос проверки подлинности Лямбда-триггер
Я беру ввод-лямбда-ввода и добавляю answerCorrect = true
к ответу, как описано в документации. Определить- и CreateChallenge-части работают, как и ожидалось с данной информацией. Проверяя ответы на вызовы, я получаю InvalidLambdaResponseException: Unrecognizable lambda output
в качестве ответа. Ламбда verify успешно существует, возвращая этот объект:
{
"version": 1,
"triggerSource": "VerifyAuthChallengeResponse_Authentication",
"region": "eu-central-1",
"userPoolId": "eu-central-1_XXXXXXXXX",
"callerContext": {
"awsSdkVersion": "aws-sdk-dotnet-coreclr-3.3.12.7",
"clientId": "2490gqsa3gXXXXXXXXXXXXXXXX"
},
"request": {
"challengeAnswer": "{\"DeviceSub\":\"TestSub\"}",
"privateChallengeParameters": {
"CUSTOM_CHALLENGE": "SessionService_SendDevice"
},
"userAttributes": {
"sub": "8624237e-0be8-425e-a2cb-XXXXXXXXXXXX",
"email_verified": "true",
"cognito:user_status": "CONFIRMED",
"email": "X.XXXXXXXX@XXXXXXXXXX.de"
}
},
"response": {
"answerCorrect": true
},
"userName": "8624237e-0be8-425e-a2cb-XXXXXXXXXXXX"
}
Раньше я сталкивался с проблемой, состоящей в том, что часть "challengeAnswer" была описана в документации как Словарь, но на самом деле это просто строка, содержащая словарь в виде json. К сожалению, я нигде не могу найти информацию, почему возвращаемый объект не принимается Cognito.
Видимо, у кого-то была такая же проблема, как и у меня, используя JavaScript: GitHub link
Может кто-нибудь сказать мне, как должен выглядеть объект ответа, чтобы он был принят Cognito? Спасибо.