Vin*_*oft 1 amazon-web-services aws-lambda aws-api-gateway aws-cognito
我正在使用以下AWS技术构建无服务器后端:
在api_gateway中,我创建了一个Cognito用户池授权程序,我使用此授权程序来处理对后端的所有请求.
一切正常:当用户使用无效的JWT令牌发出请求时,服务器会相应地做出响应.有效的JWT令牌执行请求的Lambda函数.
问题:我无法检索identity信息,如accessKey,accountId,cognitoIdentityId等等.所有这些变量都是null我通过contextlambda函数中的对象访问它们的时候
问题:为了获得identity变量,我需要做什么?
Lambda函数中的上下文对象包含Lambda角度的上下文.Lambda函数使用其执行角色的标识运行,因此其上下文将不包含Cognito用户池中的标识属性.
API网关通过API网关中的$ context.authorizer.claims变量公开Cognito用户池标识信息.要从Lambda函数中访问此信息,您必须修改API网关中的正文映射模板,以通过请求正文将所需数据从$ context.authorizer.claims传递到Lambda函数.你是Lambda函数,然后像任何其他字段一样从请求体中读取此信息.
有关这方面的文档可以在这里找到.向下滚动到标题为"在方法上启用用户池授权程序"的部分,并参阅步骤7:"如果需要,请选择"集成请求"以添加$ context.authorizer.claims ..."
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |