Amazon web services 如何知道哪个cognito用户正在触发lambda函数?

Amazon web services 如何知道哪个cognito用户正在触发lambda函数?,amazon-web-services,aws-lambda,amazon-dynamodb,amazon-cognito,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Amazon Cognito,有没有办法确定来自Cognito用户池的哪个用户正在通过API网关触发lambda函数?我正在制作一个简单的web应用程序,它有一个在lambda上运行的python后端。我需要知道触发该函数的Cognito用户的“sub-UUID”,以便向他们显示来自DynamoDB数据库的适当信息。有没有办法知道是谁在登录Cognito时触发了该函数?您可以使用JWT令牌在其中存储关于特定用户的信息。有一种方法可以做到这一点: 创建Cognito用户时,将其子UUID保存在DynamoDB表中,并将UUID

有没有办法确定来自Cognito用户池的哪个用户正在通过API网关触发lambda函数?我正在制作一个简单的web应用程序,它有一个在lambda上运行的python后端。我需要知道触发该函数的Cognito用户的“sub-UUID”,以便向他们显示来自DynamoDB数据库的适当信息。有没有办法知道是谁在登录Cognito时触发了该函数?

您可以使用JWT令牌在其中存储关于特定用户的信息。有一种方法可以做到这一点:

  • 创建Cognito用户时,将其子UUID保存在DynamoDB表中,并将UUID设置为主键
  • 当用户首次登录时,使用Cognoto API对其进行身份验证。如果成功,那么您可以看到Cognito关于它们的数据,包括它们的UUID
  • 将此UUID保存在JWT令牌中(如果使用python,则可以使用库来执行此操作)
  • 为包含JWT的用户设置仅HTTP的cookie
  • 现在,每当用户向您的API网关发出请求并对其进行身份验证时,您都可以在Lambda函数中提取与请求一起发送的cookie
  • 验证JWT,确保其为正品且未被篡改
  • 从JWT中提取UUID属性
  • 使用UUID为特定用户查询DynamoDB表,然后向他们显示适当的信息

  • 这只是一种方法。您还可以在浏览器的本地存储中使用会话或存储JWT(尽管您应该考虑这样做的安全风险)。

    < P>可以使用JWT令牌,它存储关于它内特定用户的信息。有一种方法可以做到这一点:

  • 创建Cognito用户时,将其子UUID保存在DynamoDB表中,并将UUID设置为主键
  • 当用户首次登录时,使用Cognoto API对其进行身份验证。如果成功,那么您可以看到Cognito关于它们的数据,包括它们的UUID
  • 将此UUID保存在JWT令牌中(如果使用python,则可以使用库来执行此操作)
  • 为包含JWT的用户设置仅HTTP的cookie
  • 现在,每当用户向您的API网关发出请求并对其进行身份验证时,您都可以在Lambda函数中提取与请求一起发送的cookie
  • 验证JWT,确保其为正品且未被篡改
  • 从JWT中提取UUID属性
  • 使用UUID为特定用户查询DynamoDB表,然后向他们显示适当的信息
  • 这只是一种方法。您也可以在浏览器的本地存储中使用会话或存储JWT(尽管您应该考虑这样做的安全风险)。