繁体   English   中英

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

[英]How to restricted to access AWS API Gateway endpoint by Cognito user id

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

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

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

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

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

您将为作为用户 ID 的每个项目创建一个财产owner 通常你会使用来自令牌的sub声明,它是一个唯一的 ID。 但是,出于各种原因,我不建议将主题值与 cognito 一起使用。 您可以使用 email 确保在有人删除他们的帐户并使用相同的 email 创建新帐户时采取保护措施。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM