1

对于 Web 应用程序,我正在制作一个由 api 网关触发的 AWS Lambda 函数。我将 api 网关链接到 cognito 用户池,因此您需要在触发该功能之前登录。“选项”部分未启用授权,“发布”方法将 cognito 用户池作为授权者。当我按下前端的按钮触发它时,该功能运行正常。我的问题是它context.identity.cognito_identity_id总是返回一个空值,而不是预期的子 uuid。我不知道这是为什么。我尝试启用“使用调用方凭据调用”,但是当我将鼠标悬停在复选框上时,显示我无法启用它。这是我当前的 lambda 函数:

import json

def lambda_handler(event, context):
    UniqueUser = context.identity.cognito_identity_id
    if not UniqueUser:
        UniqueUser = "fail"
        
    return {
        'statusCode': 200,
        'headers': {
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps('Hello from Lambda ' + UniqueUser + "!")
    };

我怎样才能使它context.identity.cognito_identity_id(或类似的东西)返回我认为应该的用户的 uuid?

4

1 回答 1

4

看起来sub和/或emailevent['requestContext']['authorizer']['claims']

于 2020-07-15T21:04:04.077 回答