【发布时间】: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 执行的日志。
【问题讨论】: