Пулы пользователей AWS - defAuthChallenge вызывается без идентификатора сеанса

Я добавил лямбда-функцию в свой пул пользователей AWS Define Auth Challenge

Когда мое приложение iOS пытается войти в систему, Define Auth Challenge лямбда называется. Но event.request.session параметр является пустым списком [],

Есть только один пример (это скриншот части лямбда-кода JavaScript), но он ожидает session быть определенным.

Что мне нужно определить в моем приложении для iOS, чтобы иметь session правильно заселено?

event = {
    u'userName': u'SET', 
    u'userPoolId': u'SET',
    u'callerContext': {
        u'awsSdkVersion': u'aws-sdk-ios-2.6.10', 
        u'clientId': u'SET'
    }, 
    u'region': u'SET', 
    u'request': {
        u'session': [], 
        u'userAttributes': {
            u'email_verified': u'true', 
            u'email': u'SET', 
            u'sub': u'SET', 
            u'cognito:user_status': u'CONFIRMED', 
            u'cognito:email_alias': u'SET'
        }
    }, 
    u'triggerSource': u'DefineAuthChallenge_Authentication', 
    u'version': u'1', 
    u'response': {
        u'issueTokens': None, 
        u'failAuthentication': None, 
        u'challengeName': None
    }
}

1 ответ

session в event.request не устанавливается клиентами.

Для первого вызова функции Define Auth Challenge Lambda session это пустой список. Последующие звонки будут заполняться session

С Python, пошаговый пользовательский поток Define Auth Challenge может принять эту форму:

def handler(event, context):

    step = len(event['request']['session'])

    if step == 0:
        event['response']['challengeName'] = 'CUSTOM_CHALLENGE'
        event['response']['issueTokens'] = False
        event['response']['failAuthentication'] = False
    elif step == 1 and event['request']['session'][0]['challengeName'] == 'CUSTOM_CHALLENGE':
        event['response']['issueTokens'] = event['request']['session'][0]['challengeResult']
        event['response']['failAuthentication'] = False
    else:
        event['response']['issueTokens'] = False
        event['response']['failAuthentication'] = True

    return event
Другие вопросы по тегам