我正在构建一个以 Django REST 作为后端的 SPA。现在我正在使用标准的 Django 身份验证系统和User
模型。
我希望在 SPA 上运行的 JS 能够将消息插入 AWS SQS(即sendMessage
)。
AWS在浏览器中有这些关于从 JS调用的文档。sendMessage
他们还提供了有关如何验证用户身份的文档。我现在的想法是使用 Amazon Cognito。从常见问题解答:
问:如果我注册并验证自己的用户怎么办?
Amazon Cognito 可以与您现有的身份系统集成。通过一个简单的 API 调用,您可以根据您自己的用户唯一标识符为您的最终用户检索 Cognito ID。检索 Cognito ID 和 OpenID 令牌 Cognito 提供后,您可以使用 Cognito 客户端 SDK 访问 AWS 资源并同步用户数据。
我是否纠正了这个问题,我需要:
- 为我系统中的每个用户创建一个 IAM 用户。还是我只需要一个 IAM 角色?
- 当用户登录我的网站(Django 后端)时,我会让我的后端进行“一个简单的 API 调用 [to] 检索 Cognito ID”
- 当用户加载 SPA 时发送该 Cognito ID。
- 使用浏览器中运行的 JS 中的 Cognito ID 调用
sendMessage
SQS 队列
我在这里错过了什么吗?有没有办法删除 Django 用户后端和用户 IAM 用户,这样我就可以避免让两个用户列表保持同步?我找到了这个项目,但它似乎没有得到维护。
更新: 似乎有一种替代方法可以做到这一点,我根本不使用 Cognito,而是公开一个可以签署请求的端点,“Query Request Authentication”。这个 Heroku 页面讨论了一些关于构建签名服务的内容。
这实际上是一种替代选择吗?如果是,这些方法的优缺点是什么?