API Gateway最近推出了对Cognito User Pool Authorizer的支持 . 使用Cognito User Pool Authorizer配置API方法后,您可以将Authorization标头中未过期的ID Token传递给API方法 . 如果它是您的用户池用户的有效ID令牌,则可以使用'$ context.authorizer.claims'访问API中ID令牌的所有声明 . 例如,'$ context.authorizer.claims.email'将返回用户的电子邮件地址,'$ context.authorizer.claims.sub'将返回用户的唯一标识符 . 如果ID令牌已过期或无效,Cognito用户池授权程序将向调用者发送未授权(401)响应 .
2 回答
您可以从他们的出版物中读取,您可以从授权 Headers 的未到期ID令牌中获取声明 .
我正在做同样的事情 - 使用用户池进行身份验证,然后使用id_token生成联合身份,我用户点击API网关,连接到Lambda . lambda的CloudWatch日志显示在event.requestContext.identity中传递的详细信息 . 该对象具有以下内容 -
这是一个部分答案,但我尚未弄清楚如何使用上述信息来获取实际登录的用户 .
如果你已经解决了,请分享答案 .
PS:这是一个nodejs lambda