【问题标题】:Check if user phone_number already exist in aws cognito userpool检查用户 phone_number 是否已存在于 aws cognito 用户池中
【发布时间】:2021-08-28 18:56:58
【问题描述】:

我在 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;
};

【问题讨论】:

    标签: flutter amazon-cognito aws-amplify amplify-flutter


    【解决方案1】:

    您可以为此使用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;
    

    【讨论】:

    • 这个解决方案是否适用于颤振?
    • @Sumchans 如果您使用的是 NodeJS 和 AWS NodeJS 开发工具包,那么可以。
    • 当没有会话活动时如何使用放大拨打电话。
    猜你喜欢
    • 2021-02-04
    • 2022-01-15
    • 2017-04-08
    • 2017-07-03
    • 1970-01-01
    • 2019-07-02
    • 2018-08-06
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多