我使用Cognito进行用户注册和身份验证。我希望用户能够注册和登录而无需验证他们的电子邮件地址(将有一个单独的流程)
我已将我的Cognito用户池设置为不需要电子邮件或短信验证,但当我进行以下呼叫时,由于帐户未经过验证,我仍然会收到失败。
cognitoUser.authenticateUser(authenticationDetails, {
newPasswordRequired: function (userAttributes, requiredAttributes) {
callback.cognitoCallback(`User needs to set password.`, null);
}
我收到的错误消息是'用户未确认。'
因此,即使我已经关闭了API,但如果我未经过验证,API似乎也会拒绝。除了自动验证之外,真的没办法解决这个问题吗?我不希望这样,在用户流程的某个时刻,我确实想要验证电子邮件地址,我只是不想将其作为注册的障碍。
答案 0 :(得分:15)
默认情况下,用户未在Cognito用户池中进行确认,因此如果您不希望用户通过电子邮件或电话验证过程,则需要手动执行此操作。
为此,您可以设置Pre sign-up
触发器以使用以下代码调用Lambda函数:
def lambda_handler(event, context):
event['response'] = {
'autoConfirmUser': True,
'autoVerifyEmail': False,
'autoVerifyPhone': False
}
return event
触发器基本上允许您对每个身份验证请求执行其他处理。请注意,您必须将事件对象作为Lambda函数的输出传回。