将Cognito用户信息传递给HTTP集成



我一直在探索利用Cognito用户池进行身份验证和API网关为客户端请求提供认证令牌。我基本上想有一个简单的react应用程序,利用cognito sdk的身份验证。然后,使用该身份验证通过API网关向连接到cognito用户池认证的express应用程序发出请求。这将是理想的有用户信息可在快递应用程序-似乎很简单对我来说。

我看过很多关于如何在lambda函数上下文中检索Cognito用户信息的文章和论坛帖子,但没有关于如何在HTTP集成上下文中检索Cognito用户信息的文章。

这可能吗?

是的,这是可能的,并且至少可以通过两种方式实现:

使用原始报头代理请求

如果您启用了"使用HTTP代理集成";在您的HTTP集成中,API网关将充当代理并将请求中的任何标头转发到后端(从后端响应返回到客户端也是如此)。这意味着JWT将在客户端发送它的同一个报头中到达express应用程序,在那里它可以被解码并检索请求。

使用请求[和响应]数据映射

另一种方法是在集成请求的Path/QueryString/Headers映射中传递所需的声明,在映射中使用context.authorizer.claims.{claim},例如context.authorizer.claims.email。您可以看到关于设置数据映射的文档,以及可以使用的更多变量的映射参考。请注意,对于上下文变量,正确的语法是不使用$前缀。

最新更新