如何通过Cognito用户id限制访问AWS API网关端点



我正在尝试使用AWS Cognito、Api Gateway和Lambda来实现电子商务应用程序后端。

若要创建新项目,用户必须登录。创建项目后,使用的登录用户将成为项目的创建者。我已经创建了一个Item创建端点,并为Apigateway端点添加了Cognito JWT授权器。

现在我需要实现Item更新端点。必须仅允许项目的创建者进行相关项目更新。API可能就是这样。

/items/{item-id} PUT
body : { title, price... }
header { Authorization: Cognito-JWT-Token }

使用AWS生态系统实现这种功能的最佳方式是什么。或者实现这种功能的任何最佳实践。

您将为作为用户ID的每个项创建一个属性owner。通常,您将使用来自唯一ID的令牌的sub声明。但是,由于各种原因,我不建议将subject值与cognito一起使用。如果有人删除了他们的帐户,并用同一封电子邮件创建了一个新帐户,你可以使用电子邮件来确保安全措施到位。

无论您选择什么,在处理程序中将所有者与经过验证的令牌声明进行比较。如果匹配则允许,如果不匹配则不允许。

相关内容

  • 没有找到相关文章

最新更新