这个问题可能是因为使用Cognito User Pool触发了Lambda,但在仍未尝试任何身份验证的情况下,challengeResult被设置为true。要解决这个问题,您可以使用以下代码示例检查是否存在任何身份验证尝试。如果没有,不应该设置challengeResult为true。
exports.handler = async (event, context, callback) => {
const {
userName,
triggerSource,
request,
response,
challengeAnswer
} = event;
// 检查是否存在任何身份验证尝试
const authenticated = request.session.length !== 0;
// 如果没有进行任何身份验证尝试,则不应该设置challengeResult为true
if (!authenticated) {
response.autoConfirmUser = false;
response.autoVerifyEmail = false;
response.autoVerifyPhone = false;
response.challengeName = 'CUSTOM_CHALLENGE';
response.failAuthentication = true;
response.challengeResult = false;
}
callback(null, event);
};