在 AWS Cognito 中使用电子邮件和密码通过 adminInitiateAuth 登录

Login with adminInitiateAuth using email and password in AWS Cognito

目前我正在使用 AWS Cognito 为我的一些项目开发自定义登录流程。

最近实现了用户名密码登录,如下:

const data: CognitoIdentityServiceProvider.Types.AdminInitiateAuthRequest = {
    UserPoolId,
    AuthFlow: "ADMIN_USER_PASSWORD_AUTH",
    ClientId: CognitoConfig.ClientId,
    AuthParameters: {
        USERNAME: username,
        PASSWORD: password,
        // SECRET_HASH: hash,
    }
};

是否可以使用电子邮件+密码使用CognitoIdentityServiceProvider.adminInitiateAuth登录?

我试图将 USERNAME 替换为 EMAIL(以及相应的字段值),但我得到了一个 InvalidParameterException ,期待 USERNAME 被转发。

尝试在 USERNAME 属性中传递电子邮件,同时将 AuthFlow 设置为“ADMIN_NO_SRP_AUTH”

const data: CognitoIdentityServiceProvider.Types.AdminInitiateAuthRequest = {
    UserPoolId,
    AuthFlow: "ADMIN_NO_SRP_AUTH",
    ClientId: CognitoConfig.ClientId,
    AuthParameters: {
        USERNAME: 'xyz@example.com',
        PASSWORD: password,
        // SECRET_HASH: hash,
    }
};

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html