Lambda函数中的Cognito IdentityId通过API网关

时间:2016-09-15 01:32:10

标签: python-2.7 aws-lambda aws-api-gateway amazon-cognito

我想在lambda函数中获取cognito身份标识。(python2.7)

我通过认知身份验证的ios应用程序调用api。 我试过这段代码。但它不起作用。

id = context.identity.cognito_identity_id # return null
你知道吗? 感谢。

2 个答案:

答案 0 :(得分:2)

请注意,如果您不使用调用者凭据调用,则无法执行此操作 - 因此,如果您要与用户池集成,则无需手动重写90%的Amazon加密库,这是不可能的。

整个图书馆都是乱七八糟的 - 如果你刚刚成为图书馆的新手,并考虑使用它,我必须强烈建议你远离它 - 这对我们来说绝对是一场噩梦!

目前,我们最后的办法是在用户手动设置自定义属性,并使用管理SDK在每个请求上获取它,这非常令人讨厌,但确实让工作正常。

从我所看到的情况来看,他们正在重新整理整个库,将它们整合在一起,这将是很好看的,所以请确保以一种可以在升级时更新的方式实现。

答案 1 :(得分:1)

Cognito身份标识在API网关上下文中可用,该上下文与Lambda上下文不同。您必须通过映射模板将API网关上下文发送到Lambda函数。

即。 { " cognitoIdentityId" :" $ context.identity.cognitoIdentityId" }

然后在Lambda中你可以使用event.cognitoIdentityId

请参阅http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html