Cognito没有验证电子邮件

nor*_*key 5 amazon-web-services amazon-cognito aws-cognito

我正在使用Cognito进行用户注册和身份验证.我希望用户能够注册和登录而无需验证他们的电子邮件地址(将有一个单独的过程)

我已将我的Cognito用户池设置为不需要电子邮件或短信验证,但是当我进行以下呼叫时,由于帐户未被验证,我仍然返回失败.

cognitoUser.authenticateUser(authenticationDetails, {
            newPasswordRequired: function (userAttributes, requiredAttributes) {
                callback.cognitoCallback(`User needs to set password.`, null);
            }
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是"用户未确认".

因此,即使我已经关闭了API,但如果我没有得到验证,API似乎也会拒绝.除了自动验证之外,真的没办法解决这个问题吗?我不希望这样,在用户进程的某个时刻我确实想要验证电子邮件地址,我只是不希望它作为注册的障碍.

mth*_*mth 16

默认情况下,未在Cognito用户池中确认用户,因此如果您不希望他们通过电子邮件或电话验证过程,则需要手动执行此操作.

为此,您可以设置Pre sign-up触发器以使用以下代码调用Lambda函数:

def lambda_handler(event, context):
    event['response'] = {
        'autoConfirmUser': True,
        'autoVerifyEmail': False,
        'autoVerifyPhone': False
    }

    return event
Run Code Online (Sandbox Code Playgroud)

触发器基本上允许您对每个身份验证请求执行其他处理.请注意,您必须将事件对象作为Lambda函数的输出传回.