Amazon web services 浏览器中的AWS SDK for JS是否使用CognitoUser而不是IAM凭据?

Amazon web services 浏览器中的AWS SDK for JS是否使用CognitoUser而不是IAM凭据?,amazon-web-services,amazon-s3,amazon-cognito,aws-sdk-js,Amazon Web Services,Amazon S3,Amazon Cognito,Aws Sdk Js,我有一个与S3交互的浏览器应用程序。由于它主要是一个内部工具,在处理对API的身份验证后,它直接接收一个非常受限的IAM用户的ID和密码,然后用于在浏览器中设置AWS SDK 我现在正在尝试将该应用程序更改为使用Cognito进行身份验证,这样外部用户就可以访问它,而不会影响我们的安全性 我最后使用AWS Amplify只是为了处理身份验证部分,现在我正在尝试找出是否有一种方法可以使用我从Cognito获得的凭据来设置AWS JavaScript SDK,并从此复制相同的功能。(Amplify目

我有一个与S3交互的浏览器应用程序。由于它主要是一个内部工具,在处理对API的身份验证后,它直接接收一个非常受限的IAM用户的ID和密码,然后用于在浏览器中设置AWS SDK

我现在正在尝试将该应用程序更改为使用Cognito进行身份验证,这样外部用户就可以访问它,而不会影响我们的安全性

我最后使用AWS Amplify只是为了处理身份验证部分,现在我正在尝试找出是否有一种方法可以使用我从Cognito获得的凭据来设置AWS JavaScript SDK,并从此复制相同的功能。(Amplify目前处理与S3交互的方式并不能满足应用程序的所有需求)

有没有办法做到这一点?我发现SDK文档非常混乱,无法确定我试图做的事情是否可以完成


此外,如果有一种只使用JS SDK(不使用Amplify)通过Cognito登录用户的方法,这对我来说也更可取,但这是第二个问题。

是的,使用Amplify可以很容易地做到这一点,我推荐这种方法

下面是一个使用AWS JS SDK中Route53模块的文档示例,但您当然可以使用任何AWS模块

通过


是的,使用Amplify可以很容易地做到这一点,我推荐这种方法

下面是一个使用AWS JS SDK中Route53模块的文档示例,但您当然可以使用任何AWS模块

通过


您好,如果我不清楚,请道歉:我明确地尝试在没有放大的情况下执行此操作。这需要我想出一个全新的框架,并重构我的整个应用程序。关于示例:传递给essentialCredentials的“credentials”变量中存储了什么?Auth.currentCredentials()返回的值是CognitoIdentityCredentials。这里的更多信息您是否尝试过使用Amplify的Auth.essentialCredentials函数将您从Cognito获得的凭证转换为可以传递给AWS JS服务对象的凭证?谢谢,这确实有效。我不知道这些凭证方法是放大的,而不是aws sdk js方法(并不是说你的帖子对此不完全清楚,我只是读得太快了)。为什么推荐Amplify?我非常喜欢AWS Amplify的两个部分:JS库和CLI工具链。我喜欢JS库,因为它比AWS JS SDK具有更高的抽象级别,这意味着使用Amplify可以更轻松地完成一些常见操作。我喜欢CLI工具链,因为它使开始生成AWS CloudFormation模板变得非常容易。这两个项目都进展很快,我仍然很高兴看到它们如何改进。嗨,如果我不清楚,我很抱歉:我明确地试图在没有放大的情况下完成这项工作。这需要我想出一个全新的框架,并重构我的整个应用程序。关于示例:传递给essentialCredentials的“credentials”变量中存储了什么?Auth.currentCredentials()返回的值是CognitoIdentityCredentials。这里的更多信息您是否尝试过使用Amplify的Auth.essentialCredentials函数将您从Cognito获得的凭证转换为可以传递给AWS JS服务对象的凭证?谢谢,这确实有效。我不知道这些凭证方法是放大的,而不是aws sdk js方法(并不是说你的帖子对此不完全清楚,我只是读得太快了)。为什么推荐Amplify?我非常喜欢AWS Amplify的两个部分:JS库和CLI工具链。我喜欢JS库,因为它比AWS JS SDK具有更高的抽象级别,这意味着使用Amplify可以更轻松地完成一些常见操作。我喜欢CLI工具链,因为它使开始生成AWS CloudFormation模板变得非常容易。这两个项目进展很快,我仍然很高兴看到它们如何改进。
import Route53 from 'aws-sdk/clients/route53';

Auth.currentCredentials()
  .then(credentials => {
    const route53 = new Route53({
      apiVersion: '2013-04-01',
      credentials: Auth.essentialCredentials(credentials)
    });

    // more code working with route53 object
    // route53.changeResourceRecordSets();
  })