Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 从浏览器向SQS发送消息_Amazon Web Services_Amazon Sqs_Amazon Iam_Aws Sdk_Amazon Cognito - Fatal编程技术网

Amazon web services 从浏览器向SQS发送消息

Amazon web services 从浏览器向SQS发送消息,amazon-web-services,amazon-sqs,amazon-iam,aws-sdk,amazon-cognito,Amazon Web Services,Amazon Sqs,Amazon Iam,Aws Sdk,Amazon Cognito,我正在建立一个以Django REST为后端的水疗中心。现在我正在使用标准的Django身份验证系统和用户模型 我希望SPA上运行的JS能够将消息插入AWS SQS(即sendMessage) AWS在浏览器中通过JS调用sendMessage 它们还提供了如何验证用户的信息。我现在的想法是使用亚马逊Cognito。从: 问:如果我注册并验证我自己的用户会怎么样 Amazon Cognito可以与您现有的身份系统集成。具有 通过一个简单的API调用,您可以为最终用户检索Cognito ID 基于

我正在建立一个以Django REST为后端的水疗中心。现在我正在使用标准的Django身份验证系统和
用户
模型

我希望SPA上运行的JS能够将消息插入AWS SQS(即
sendMessage

AWS在浏览器中通过JS调用
sendMessage

它们还提供了如何验证用户的信息。我现在的想法是使用亚马逊Cognito。从:

问:如果我注册并验证我自己的用户会怎么样

Amazon Cognito可以与您现有的身份系统集成。具有 通过一个简单的API调用,您可以为最终用户检索Cognito ID 基于用户自己的唯一标识符。一旦你 检索到Cognito提供的Cognito ID和OpenID标记,您可以 使用Cognito客户端SDK访问AWS资源并进行同步 用户数据

我是否正确认为,要使其发挥作用,我需要:

  • 为我的系统中的每个用户创建一个IAM用户。还是我只需要一个IAM角色
  • 当用户登录我的站点(Django后端)时,我会让我的后端
  • 当用户加载SPA时发送该Cognito ID
  • 使用浏览器中运行的JS中的Cognito ID调用SQS队列的
    sendMessage
  • 我是不是遗漏了什么?有没有办法删除Django用户后端,只删除用户IAM用户,这样我就可以避免两个用户列表保持同步?我发现了,但它似乎没有得到维护

    更新: 似乎有另一种方法可以做到这一点,我根本不使用Cognito,而是公开一个可以使用Cognito的端点。谈一谈如何建立签名服务


    这实际上是一个替代选项吗?如果是,这些方法的优点/缺点是什么?

    Amazon Cognito不要求您注册IAM用户,只需要注册两个IAM角色。对您需要执行的操作稍作修改:

  • 创建一个AmazonCognito标识池,并与开发人员提供者一起配置
  • 更新与池关联的IAM角色,以允许访问所需的服务(例如SQS)
  • 从Django后端,调用GetOpenIdTokenForDeveloperIdentity获取此用户的OpenId连接令牌和标识Id,并将其返回到JS应用程序
  • 在JSSDK中配置您的应用程序。在登录映射中,使用keycognito identity.amazonaws.com和该值作为从Django后端返回的令牌
  • 使用JSSDK从应用程序调用SQS或任何其他服务

  • 虽然为SQS使用预签名URL是可行的,但将Cognito与JS SDK一起使用将允许您利用SDK支持的其他服务(DynamoDB、SNS、S3等)。

    如果我想限制给定用户可以
    发送消息的插入次数,请,
    pre-signed URL
    Cognito
    方法是否有允许这样做的机制?一种想法是在预签名时检查速率,并设置一个很短的过期时间,但这并不能明确控制发送的数量。@AlexRothberg不幸的是,这两种解决方案都不允许这种级别的控制。是否可以限制可以为
    DelaySeconds
    设置的值?i、 e.我总是想使用队列默认值?@AlexRothberg不幸的是,SDK只能执行API中可用的限制。