【发布时间】:2020-11-06 21:24:57
【问题描述】:
我正在尝试在身份令牌中添加一个帐户属性,但是当我从我的 Web 应用程序运行它时它给我带来了问题。
我一直在用测试事件测试 lambda,它工作正常,我不知道可能是什么问题,我已经尝试将响应更改为回调和上下文,但它们也不起作用。
我正在使用无服务器框架安装此触发器,我有另一个具有完全相同设置的 PostConfirmation 触发器并且它可以正常工作。给我带来麻烦的是 PreTokenGeneration。
我附上了我在函数中使用的代码:
module.exports.execute = async (event, context) => {
const { sub } = event.request.userAttributes;
const getUserQuery = {
TableName: `my-table`,
Key: { id: sub }
};
try {
const data = await dynamoDb.get(getUserQuery).promise();
console.log("DEBUG: query data", data);
const account = data.Item.accounts.find(
account => account.id === data.Item.currentAccountId
);
event.response = {
claimsOverrideDetails: {
claimsToAddOrOverride: {
account: account
}
}
};
console.log("OUTPUT: ", event);
return event;
} catch (error) {
console.log("ERROR:", error);
throw Error(
JSON.stringify({
error: error.message
})
);
}
};
这是它在我的网络应用程序中给我的错误
{"__type":"InvalidLambdaResponseException","message":"Unrecognizable lambda output"}
我做错了什么?我不知道还能去哪里看,lambda 日志告诉我一切都很好。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cognito