检查用户 phone_number 是不是已存在于 aws cognito 用户池中
Posted
技术标签:
【中文标题】检查用户 phone_number 是不是已存在于 aws cognito 用户池中【英文标题】: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;
;
【问题讨论】:
【参考方案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 开发工具包,那么可以。 当没有会话活动时如何使用放大拨打电话。以上是关于检查用户 phone_number 是不是已存在于 aws cognito 用户池中的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 检查标签是不是已存在于 Adwords 帐户中?