Aws lambda AWS Cognito-未触发自定义质询

Aws lambda AWS Cognito-未触发自定义质询,aws-lambda,amazon-cognito,Aws Lambda,Amazon Cognito,我正在定义一个关于用户身份验证的自定义挑战。我创建了一些lambda: 教程定义身份验证挑战 教程创建身份验证挑战 并将它们配置为用户池中的触发器 问题是这些lambda没有被触发。我在每个错误中都添加了错误(请参阅注释掉的代码),但我能够注册并登录,没有任何问题 我想做的是通过检查自定义JWT令牌(而不是通过电子邮件发送的验证代码)添加一个新的挑战 我还需要做什么才能让它工作?我查看了cloudwatch,只能找到手动lambda执行的日志。 您能否显示您正在使用哪些命令触发自定义质询? 最

我正在定义一个关于用户身份验证的自定义挑战。我创建了一些lambda:

教程定义身份验证挑战 教程创建身份验证挑战 并将它们配置为用户池中的触发器

问题是这些lambda没有被触发。我在每个错误中都添加了错误(请参阅注释掉的代码),但我能够注册并登录,没有任何问题

我想做的是通过检查自定义JWT令牌(而不是通过电子邮件发送的验证代码)添加一个新的挑战

我还需要做什么才能让它工作?我查看了cloudwatch,只能找到手动lambda执行的日志。


您能否显示您正在使用哪些命令触发自定义质询?
最近,我实现了一个类似于您在“define auth”中描述的流程。有几件事我想和大家分享:
  • 这非常有帮助(在自定义身份验证流中使用SRP密码验证部分)

  • 如果您熟悉Java,我强烈建议您看看这个可以用于自定义流调用的漂亮代码(类似的代码可以在python和javascript中找到)。为此,我相信您需要将
    AuthFlowType
    更新为
    CUSTOM\u AUTH

    此外,此实用程序还可以帮助
    PASSWORD\u CLAIM\u SIGNATURE
    PASSWORD\u CLAIM\u SECRET\u BLOCK
    计算

  • "use strict";
    
    exports.handler = (event, context, callback) => {
        // throw new Error("tutoring-define-auth-challenge");
        if (event.request.session.length == 1 && event.request.session[0].challengeName == 'SRP_A') {
            event.response.issueTokens = false;
            event.response.failAuthentication = false;
            event.response.challengeName = 'PASSWORD_VERIFIER';
        } else if (event.request.session.length == 2 && event.request.session[1].challengeName == 'PASSWORD_VERIFIER' && event.request.session[1].challengeResult == true) {
            event.response.issueTokens = false;
            event.response.failAuthentication = false;
            event.response.challengeName = 'CUSTOM_CHALLENGE';
        } else if (event.request.session.length == 3 && event.request.session[2].challengeName == 'CUSTOM_CHALLENGE' && event.request.session[2].challengeResult == true) {
            event.response.issueTokens = true;
            event.response.failAuthentication = false;
        } else {
            event.response.issueTokens = false;
            event.response.failAuthentication = true;
        }
    
        // Return to Amazon Cognito
        callback(null, event);
    }
    
    
    "use strict";
    
    const publicKey = require('./public');
    exports.handler = async (event) => {
        //throw new Error("tutoring-create-auth-challenge");
        event.response.privateChallengeParameters = { key: publicKey.key };
        return event;
    };