【问题标题】:AWS Cognito - custom challenge not triggeredAWS Cognito - 未触发自定义质询
【发布时间】:2020-12-22 17:38:43
【问题描述】:

我正在定义用户身份验证的自定义质询。我创建了一些 lambda:

辅导定义授权挑战

"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;
};

并将它们配置为用户池中的触发器

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

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

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

【问题讨论】:

    标签: aws-lambda amazon-cognito


    【解决方案1】:

    您能否说明您使用哪些命令来触发自定义挑战?
    最近,我实现了与您在“define-auth”中描述的流程类似的流程。我想分享几点:
    1. 这个document 非常有帮助(在自定义身份验证流程中使用 SRP 密码验证部分)

    2. 如果您熟悉 Java,我强烈建议您看看这个不错的 utility(可以为 python 和 javascript 找到类似的代码),它可用于自定义流调用。为此,我认为您需要将 AuthFlowType here 更新为 CUSTOM_AUTH
      此外,此实用程序有助于 PASSWORD_CLAIM_SIGNATUREPASSWORD_CLAIM_SECRET_BLOCK 计算。

    【讨论】:

      猜你喜欢
      • 2017-09-08
      • 2021-03-21
      • 2021-08-17
      • 2019-05-15
      • 1970-01-01
      • 2018-06-17
      • 2018-06-07
      • 2019-06-12
      • 1970-01-01
      相关资源
      最近更新 更多