在AWS Lambda函数中无法访问listUsersRes.Users的userAttributes。

0

【以下的问题经过翻译处理】 我在 lambda 函数中过滤掉未经确认的电子邮件。我只想访问我的 listUsersRes.Users 中每个用户的电子邮件。我已经尝试过 listUsersRes.Users[0].Username 它完美地返回了用户名。但是当我尝试 listUsersRes.Users[0].Email 或 listUsersRes.Users[0].userAttributes.email 或 listUsersRes.Users[0].request.userAttributes.email 时,它返回空值。我有 AttributesToGet: ["email"]. 但我不知道为什么它不适用于电子邮件。 我的功能:

exports.handler = async (event, context, callback) => {
    const cognitoProvider = new aws.CognitoIdentityServiceProvider({apiVersion: "2016-04-18"});
      如果(event.triggerSource == “PreSignUp_SignUp” ||event.triggerSource == “PreSignUp_AdminCreateUser” || event.triggerSource == “PreSignUp_ExternalProvider”){
     尝试 {
      
        const listUserParams={UserPoolId: event.userPoolId,AttributesToGet: ["email"], Filter: `cognito:user_status= \"${"UNCONFIRMED"}\"`, Limit: 10 };
        const listUsersRes = await cognitoProvider.listUsers(listUserParams).promise();
        
        如果(listUsersRes.Users.length >= 0){
            return callback(new Error(listUsersRes.Users[0].Username), event);//我正在修改这一行以从 listUsersRes.Users[0] 获取电子邮件属性
 }
           }
     捕获(错误){返回回调(新错误(“捕获错误”),事件);}
    }
 别的 {
     var error = "不支持该提供者";
     回调(新错误(错误),事件);
  }
 
 };

我的许可:

   "Sid": "VisualEditor0",
            "效果": "允许",
            “行动”: [
                “日志:CreateLogStream”,
                “日志:PutLogEvents”,
                “认知 IDP:AdminInitiateAuth”,
                “cognito-idp:ListUsers”,
                “cognito-idp:AdminUpdateUserAttributes”,
                “cognito-idp:AdminGetUser”
            ],

1 Antwort
0

【以下的回答经过翻译处理】 您可以通过与用户元素相关联的属性获取电子邮件。

属性是AttributeType类型的数组。

listUsersRes.Users[0].Attributes[listUsersRes.Users[0].Attributes.findIndex(p => p.Name == "email")].Value
profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen