AWS SDK для JS в браузере с CognitoUser вместо учетных данных IAM? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть браузерное приложение, которое взаимодействует с S3. Поскольку это был в основном собственный инструмент, после обработки аутентификации в API он напрямую получил ID и секрет для очень ограниченного пользователя IAM, который затем использовался для настройки AWS SDK в браузере.

Сейчас я пытаюсь изменить это приложение на использование Cognito для аутентификации, чтобы внешние пользователи могли получить к нему доступ без ущерба для нашей безопасности.

Я использовал AWS Amplify только для обработки части аутентификации, и теперь я пытаюсь выяснить, есть ли способ использовать учетные данные, полученные от Cognito, для настройки AWS JavaScript SDK и репликации той же функциональности из этого указать на. (То, как в настоящее время Amplify обрабатывает взаимодействие с S3, не покрывает все потребности приложения)

Есть ли способ сделать это? Я нахожу документацию SDK чрезвычайно запутанной и не могу определить, можно ли вообще что-то сделать, что я пытаюсь сделать.

Кроме того, если есть способ использовать только JS SDK (без Amplify) для входа в систему пользователя через Cognito, это также будет предпочтительным для меня, но это вторичная проблема.

1 Ответ

0 голосов
/ 15 ноября 2018

Да, вы можете легко сделать это с помощью Amplify, и я рекомендую этот подход.

Вот пример из документов, использующих модуль Route53 из AWS JS SDK, но вы, конечно, можете использовать любой из модулей AWS.

Через https://aws -amplify.github.io / docs / js / authentication # работа с объектами-службами

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();
  })
...