AWS Cognito用户预注册验证。检查其他数据库中是否存在用户

时间:2018-06-26 18:07:46

标签: amazon-web-services aws-lambda amazon-cognito

我当前正在将基于数据库的用户目录迁移到AWS Cognito。我正在使用migration触发器来迁移现有用户。这工作正常。

我的问题,如果SignUp使用现有的电子邮件ID,该怎么办。因此,我想添加PreSignUp触发器,以检查数据库中是否存在用户,并为所有用户进行自动确认。

我的问题是当用户存在时如何从触发器做出响应? Cognito期望什么样的JSON对象,以便在客户端提供UserExistsException。?

草稿代码。

def handler(event, context):
    event['response']['autoConfirmUser'] = True

    if event['request']['userAttributes']['email'] is not None:
        if not user_exists(event['request']['userAttributes']['email']):
            event['response']['autoVerifyEmail'] = True
        else:
            return #Validation Error response

    return event

1 个答案:

答案 0 :(得分:1)

在AWS Cognito中,当有人尝试使用现有电子邮件地址注册时,它会自动检测并引发异常。因此,您可以触发从Cognito抛出的异常并进行处理。因此,根据我的观点,最好先检查用户是否存在于您的数据库中,然后抛出自定义异常,而无需继续进行Cognito。