AWS Lambda / Cognito Authentication – Предполагаемая роль Auth

Я пытаюсь создать приложение iOS в Swift, которое использует следующую службу аутентификации, используя AWS Lambda – https://github.com/danilop/LambdAuth

Он использует AWS Mobile SDK для iOS для связи с DynamoDB и Lambda – http://docs.aws.amazon.com/mobile/sdkforios/developerguide/

Вот пример кода для веб-сайта, который использует токен, возвращенный из функции входа в Lambda, я полагаю, что код Swift будет чем-то подобным – https://github.com/danilop/LambdAuth/blob/master/www/login.html # L69

Вот облачная функция, которая генерирует токен для пользователя – https://github.com/danilop/LambdAuth/blob/master/LambdAuthLogin/index.js#L102

Я создал пул идентификаторов в AWS Cognito (Federated Identities), и у меня есть две роли: auth и unauth. Мое приложение всегда является ролью unauth (arn: aws: sts :: 123123123: Предполагаемая роль / _unauth_MOBILEHUB_123123123 / CognitoIdentityCredentials). Мои пользователи хранятся в таблице dynamodb с использованием соленого пароля.

Корень проблемы в том, что я не знаю правильный код Swift для записи после того, как я получаю токен входа из службы, чтобы перевести моего пользователя в аутентифицированную роль (используйте auth arn). Я хочу, чтобы он использовал роль auth для каждого вызова службы AWS (dynamodb, lambda и т. Д.). Я надеюсь, что кто-то может указать мне в правильном направлении – спасибо.

2 Solutions collect form web for “AWS Lambda / Cognito Authentication – Предполагаемая роль Auth”

Согласно дизайну в книге Данило, если вы используете javascript aws-sdk, вы должны определить свои объекты следующим образом:

var creds = new AWS.CognitoIdentityCredentials({ IdentityPoolId: //hard coded value for your system// }) AWS.config.update({ region: 'us-east-1', credentials: creds }); var lambda = new AWS.Lambda(); 

то, как только вы получите свой идентификатор и токен, вы должны назначить им свои кредиты следующим образом:

 creds.params['IdentityId'] = output.identityId; creds.params['Logins'] = {}; creds.params['Logins']['cognito-identity.amazonaws.com'] = output.token; creds.expired = true; 

где output – это ответ вашей функции LambdAuthLogin Lambda.

Аутентифицированные роли будут использоваться только при использовании одного из поддерживаемых публичных поставщиков (Facebook, Google, Twitter, Login With Amazon), поставщика OIDC, поставщика SAML или пользователей Cognito User Pool.

Amazon Cognito User Pools предоставляет вам решение для регистрации, аутентификации и управления пользователями. Есть ли причина, по которой вы предпочитаете использовать Lambda Auth?

  • Как добавить равный интервал и равную ширину для кнопки в iOS Автоматическая компоновка
  • IOS SWIFT: декларация действительна только в области файлов
  • UDP Broadcast / Device Discovery на iOS?
  • Эффект Scratch Card в Swift 3
  • Циркуляр UICollectionview, как сохранить все углы ячейки 0 °
  • Как дождаться завершения всех NSOperations?
  • Swift: Как я могу получить слушатель, который сообщает, когда соединение потеряно и когда оно вернется?
  • Отображение пользовательских изображений iOS MKMapView в верхнем левом углу
  • Мгновенный просмотр из ошибки nib throws
  • добавление ограничения в подвью делает фоновый цвет не отображен
  • Как инвертировать цвета определенной области UIView?
  • Interesting Posts

    sizewithfont: forwidth: linebreakmode

    Обновить UITableView tableFooterView без перезагрузки всех данных таблицы

    Почему прослушиватели событий прикосновения, по-видимому, препятствуют выбору языков перевода Google на iphone или ipad?

    IOS 6 Ориентации – только один Viewcontroller поддерживает ориентацию на пейзаж и портрет – еще ТОЛЬКО Портрет

    AFNetworking «Неопределенные символы для архитектуры i386» Ошибка

    Как каждый пользователь iCloud может сохранить пользовательскую подписку в CloudKit?

    Изображение большого пальца MPVolumeView not Center

    SIP-вызов получает статус «Сообщение о статусе по умолчанию» в iOS

    Ionic Build iOS и Xcode Build не используют новейшую версию Ionic 2 Beta 10

    IOS: как рассчитать размер текста для рисования ДО для создания контекста?

    Сохранить PDF, который отображается UIWebView локально

    Я не могу подключиться к серверу с помощью WebsocketStompKit в ios 9.2

    Перетащите и переместите что-то в построителе интерфейса, не меняя родительский / супервизор

    Как преобразовать CFArrayRef в NSArray?

    Ошибка Swift JSON, не может отличать значение типа «__NSArrayM» (0x507b58) с «NSDictionary» (0x507d74)

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.