2

我在 aws 上使用无服务器 lambda 函数在 cognito 用户池中进行用户身份验证。我只要求用户提供他的电话号码并向他发送 otp 以进行验证。当用户注销并再次登录时,问题就出现了。我无法决定何时为用户调用 signUp 或登录。我猜,我需要在预注册之前触发一个 lambda 调用,它验证用户电话号码已经存在于用户池中,我需要Amplify.Auth.signIn从客户端调用 api。如果没有Amplify.Auth.signUpapi,则从客户端调用。但我找不到任何文件。我使用颤振作为我的前端。请帮忙。

我的注册前 lambda 函数如下所示:

exports.handler = async (event) => {
    console.log('Received EVENT', JSON.stringify(event, null, 2));
    event.response.autoConfirmUser = true;
    event.response.autoVerifyPhone = true;
    return event;
};
4

1 回答 1

0

你可以使用CognitoIdentityServiceProvider.listUsers这个。

const cognitoIdentityServiceProvider = new CognitoIdentityServiceProvider();

const result = await this.cognitoIdentityServiceProvider.listUsers({
 UserPoolId: process.env.USER_POOL_ID,
 Filter: `phone_number = \"${phoneNumber}\"`
}).promise();

return result.Users.length > 0 ? result.Users[0].Username : undefined;
于 2021-09-23T19:22:23.100 回答