使用Cognito凭据从浏览器调用我的API端点不会向发出请求的用户提供lambda函数。
我正在使用AWS_IAM auth作为端点
这是我的lambda中的请求:
module.exports.addItem = (event, context, done) => {
console.log(event.identity);
/**
accountId: "",
apiKey: "",
caller: "",
cognitoAuthenticationProvider: "",
cognitoAuthenticationType: "",
cognitoIdentityId: "",
cognitoIdentityPoolId: "",
sourceIp: "213.229.49.108",
user: "",
userAgent: "Mozilla/5.0 (X11; Linux x86_6....",
userArn: ""
*/
};
我想为用户执行一些dynamodb操作。我怎样才能得到用户?
答案 0 :(得分:0)
您可以通过2个选项将Cognito Identity Id添加到Lambda函数中:
检查"使用来电显示"在控制台中的API方法上。这将告诉API Gateway使用Cognito凭证来调用Lambda,这意味着Lambda函数的context.identity将包含信息。 注意您的Cognito角色需要获得调用Lambda函数的权限才能生效。
使用mapping template将值映射到事件有效内容中。
看起来你正在努力做#2,但是你还没有包含你的映射模板,请确保它包含所需的值。此外,请确保您已部署了启用IAM身份验证的更改,并确保您正确签署了请求。