AWS 无法识别的 Lambda 输出 Cognito 错误

Ara*_*ddy 3 triggers amazon-web-services amazon-cognito

我最近开始使用 AWS。我已经使用 cognito 用户池集成了 AWS Amplify 进行用户管理(登录和注册),并且它非常完美(每当新用户注册时,用户池就会更新)。现在我添加了一个 Cognito Post 确认触发器来将注册的电子邮件保存到数据库中,这是我的触发器 codevar mysql = require('mysql');

var config = require('./config.json');

var pool = mysql.createPool({

host : config.dbhost,

user : config.dbuser,

password : config.dbpassword,

database : config.dbname

});

exports.handler = (event, context, callback) => {

let inserts = [event.request.userAttributes.email];

context.callbackWaitsForEmptyEventLoop = false; //prevents duplicate entry

pool.getConnection(function(error, connection) {

connection.query({

sql: 'INSERT INTO users (Email) VALUES (?);',

timeout: 40000, // 40s

values: inserts

}, function (error, results, fields) {

// And done with the connection.

connection.release();

// Handle error after the release.

if (error) callback(error);

else callback(null, results);

});

});

};
Run Code Online (Sandbox Code Playgroud)

每当用户注册并确认他的电子邮件时,此触发器就会调用并向我抛出此错误 “无法识别的 Lambda 输出 Cognito”。尽管它在后台向我抛出此错误,但我的数据库正在插入新注册的电子邮件,但因此我无法重定向我的页面。任何帮助将不胜感激。谢谢

阿拉文德

Pha*_*iệt 5

简短回答:替换callback(null, results);callback(null, event);

原因:您必须返回 Cognito 将使用它来继续身份验证工作流程的结果。在本例中,this 是event对象。