Cognito迁移触发器运行成功,但返回错误。

0

【以下的问题经过翻译处理】 您好,我创建了一个迁移用户 Lambda 触发器 来自动注册来自登录后将 MySQL DB 放入 Cognito 池中。

我正在使用 Cognito 提供的托管 UI,并且触发器正确执行,它验证用户凭据并发回 context.succeed(event);,但我每次在 UI 中收到错误响应不正确的用户名或密码。并且用户未在 Cognito 池中正确创建。

在此处输入图片描述

此 Lambda 函数之前按预期工作,我能够成功迁移用户,但它突然开始失败。 它是这样的:

exports.handler = async (event, context, callback) => { 变种用户;

如果 (event.triggerSource == "UserMigration_Authentication") { // 使用现有用户目录服务对用户进行身份验证 user = await authenticateUser(event.userName, event.request.password);

如果(用户){ 事件.response.userAttributes = { “电子邮件”:user.email, “email_verified”:“真” }; event.response.finalUserStatus = "确认"; event.response.messageAction = "抑制"; 上下文成功(事件); } 别的 { // 将错误返回给 Amazon Cognito callback("密码无效"); } } else if (event.triggerSource == "UserMigration_ForgotPassword") { // 在现有用户目录服务中查找用户 user = await lookupUser(event.userName);

如果(用户){ 事件.response.userAttributes = { “电子邮件”:user.email, // 需要启用密码重置代码才能发送给用户 “email_verified”:“真” }; event.response.messageAction = "抑制"; 上下文成功(事件); } 别的 { // 将错误返回给 Amazon Cognito callback("未找到用户"); } } 别的 { // 将错误返回给 Amazon Cognito 回调(“无效的触发源”+ event.triggerSource); } };

这是用户成功通过身份验证时发回的事件示例:

{ 版本:'1', triggerSource: 'UserMigration_Authentication', 区域:'us-xxx-x', userPoolId: 'us-xxx-x_xxxXxXX', 用户名:'qa_tests+email@email.com', 来电上下文:{ awsSdkVersion: 'aws-sdk-未知-未知', clientId: '79vm3b2pogsddtl9udq5unrg' }, 请求:{密码:'密码!',validationData:null,userAttributes:null}, 回复: { 用户属性:{ 电子邮件:'qa_tests+email@email.com', email_verified: 'true' }, forceAliasCreation:空, enableSMSMFA:空, finalUserStatus: '已确认', messageAction: '抑制', desiredDeliveryMediums:空 } }

authenticateUser 是从 MySQL 中获取用户并验证凭据的函数

lookupUser 是从 MySQL 中获取用户的函数。

我无法弄清楚问题是什么,特别给出了错误响应“用户名或密码不正确”。当电子邮件和密码都正确时。

这个 Lambda 以前工作正常,最近才开始失败,我想不出原因,我能记得的唯一变化是在池中添加和删除客户端应用程序。

profile picture
EXPERTE
gefragt vor 5 Monaten35 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 我深入挖掘并阅读了其他帖子后,找到了答案。gev1695用户提供了答案,基本上你需要增加lambda函数的默认内存。

我无法相信你们的文档是如此缺乏,更不用说能够正确调试问题的日志是多么糟糕。

随意关闭并标记为已解决。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen