通过 API 网关在 Lambda 函数中使用 Cognito IdentityId
Cognito IdentityId in Lambda Function through API Gateway
我想在 lambda 函数中获取 Cognito 身份 ID。(python2.7)
我从 ios 已通过 Cognito 身份验证的应用调用 api。
我试过这段代码。但是没用。
id = context.identity.cognito_identity_id # return null
你有什么想法吗?
谢谢
Cognito 身份 ID 在不同于 Lambda 上下文的 API 网关上下文中可用。您必须通过映射模板将 API 网关上下文发送到您的 Lambda 函数。
即
{
"cognitoIdentityId":“$context.identity.cognitoIdentityId”
}
然后在 Lambda 中您可以使用 event.cognitoIdentityId
请注意,如果您不使用调用者凭据进行调用,这将不起作用 - 因此,如果您想与您的用户池集成,那么如果不手动重写 90% 的 Amazon 加密库,这是不可能做到的。
整个图书馆都是一团糟 - 如果你碰巧是图书馆的新手并考虑使用它,我强烈建议你远离 - 这对我们来说绝对是一场噩梦!
目前,我们的最后一招是手动为用户设置一个自定义属性,并使用管理 SDK 在每个请求上获取它,这很烦人,但确实可以正常工作。
据我所知,他们正在重新设计整个库以将它们整合在一起,这很高兴看到,因此请确保您以一种在他们升级时可以更新的方式来实现。
我想在 lambda 函数中获取 Cognito 身份 ID。(python2.7)
我从 ios 已通过 Cognito 身份验证的应用调用 api。 我试过这段代码。但是没用。
id = context.identity.cognito_identity_id # return null
你有什么想法吗? 谢谢
Cognito 身份 ID 在不同于 Lambda 上下文的 API 网关上下文中可用。您必须通过映射模板将 API 网关上下文发送到您的 Lambda 函数。
即 { "cognitoIdentityId":“$context.identity.cognitoIdentityId” }
然后在 Lambda 中您可以使用 event.cognitoIdentityId
请注意,如果您不使用调用者凭据进行调用,这将不起作用 - 因此,如果您想与您的用户池集成,那么如果不手动重写 90% 的 Amazon 加密库,这是不可能做到的。
整个图书馆都是一团糟 - 如果你碰巧是图书馆的新手并考虑使用它,我强烈建议你远离 - 这对我们来说绝对是一场噩梦!
目前,我们的最后一招是手动为用户设置一个自定义属性,并使用管理 SDK 在每个请求上获取它,这很烦人,但确实可以正常工作。
据我所知,他们正在重新设计整个库以将它们整合在一起,这很高兴看到,因此请确保您以一种在他们升级时可以更新的方式来实现。