2015-03-29 4 views
5

Я пытаюсь интегрировать веб-службы Amazon в мое приложение, но, откровенно говоря, это был серьезный вызов, и это очень раздражает.Amazon Cognito iOS

Я использую Amazon SDK (v2.1.0) для прошивки и это то, что я пытаюсь достичь:

  1. В моем приложении, у меня есть экран SIGNUP где мои пользователи могут подписаться на мое приложении используя либо Facebook, либо создав учетную запись
  2. Если пользователь хочет создать учетную запись, я планирую использовать Amazon Cognito для безопасного доступа к Amazon DynamoDB (через приложение iOS), где я буду хранить адрес электронной почты и пароль.

Я пытаюсь получить Amazon Cognito работает со следующим кодом в моем ViewController, но я получаю ноль для переменной cognitoId. Мой код ниже:

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 
                           identityPoolId:@"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"]; 
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 
                    credentialsProvider:credentialsProvider]; 
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration; 

NSString *cognitoId = credentialsProvider.identityId; //NULL 

Основываясь на всем, что я объяснял выше, я следующие вопросы:

  1. Является ли мое использование случай Amazon Cognito правильно в этом случае?
  2. Почему этот код не работает?
  3. Я думаю, что проблема может иметь отношение к ролям iam, настроенным в пуле идентификаторов. Я не уверен, какие роли следует придавать с точки зрения безопасности. После того, как пользователи зарегистрировались, приложение получит разрешение на запись в мой DynamoDB, не подвергая уязвимости безопасности. Кто-нибудь может рассказать об этом?

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

Спасибо!

+0

Я хотел бы поговорить с вами о вашем опыте с Когнито. Пожалуйста, напишите мне - мой адрес электронной почты находится на моей странице профиля stackoverflow. –

ответ

1

Идентификатор идентификации Cognito по умолчанию не задан. Вы звоните в getIdentityId или обновляетесь вместе с провайдером? Если нет, я попробую это и посмотрю, получится ли результат.

Что касается ваших других вопросов, Cognito поддерживает «публичных поставщиков», таких как facebook, google и amazon, а также идентификаторы, прошедшие аутентификацию разработчика. Для вашего предлагаемого случая с facebook вы можете довольно легко использовать Cognito. Сообщение в блоге о ролях и политиках Cognito доступно here.

Идентифицированные идентификаторы разработчика могут быть действительным (и более безопасным) способом реализации вашего второго варианта использования. Рабочий процесс потребует, чтобы у вас был сервер задней панели, но вы могли только предоставить доступ к таблице db dynamo к этому серверу. Пользователи должны войти в систему, приложение отправит эти данные на ваш сервер, этот сервер будет проверять и отвечать с учетными данными, а затем пользователь может получить доступ к вашим другим ресурсам AWS. Сообщение в блоге, описывающее роли и политики в этом контексте, доступно here и доступно более подробное описание особенностей и перечисление примера конца до конца. here.

Смежные вопросы