【发布时间】:2017-06-13 08:52:58
【问题描述】:
我创建了一个 Lambda 函数,并将其连接到 API Gateway 端点。我的用户正在通过 Cognito 使用 Facebook 进行身份验证(因此,显然使用了联合身份池)。在我的 iOS 应用程序中,我能够正确地进行身份验证,接收回 Cognito Id,并且还可以通过 API Gateway 正确地执行我的 Lambda 函数。
我现在卡住的地方是尝试在我的 lambda 中访问用户的身份。我从其他线程和 AWS 文档中了解到,我应该能够通过 JS 中的 context.identity.cognitoIdentityId 访问身份。但是,上下文始终为空。
进一步挖掘表明上下文是在 X-Amz-Client-Context 标头中传递的——当我查看 API 网关调用的数据包时,我没有看到该标头正在传递。我将网关自动生成的 SDK (ObjC) 用于我的端点。
我在这里错过了什么?
【问题讨论】:
-
您在方法请求中使用的不是直通模板吗?
-
我不知道。无论如何,客户端SDK都不会生成标头,所以我认为这更多是一个问题。还是API Gateway自动添加的X-Amz-Client-Context?
-
X-Amz-Client-Contextheader 应该是由移动端 SDK 自动添加,然后由 API Gateway 处理的。
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito