Cognito Identity с использованием нескольких логинов - PullRequest
0 голосов
/ 02 марта 2019

Я начинаю внедрять федеративную аутентификацию с помощью AWS Cognito, используя AWS C ++ SDK.

Я хочу аутентифицировать пользователя с помощью Cognito User Pool и Facebook, Twitter, Google.

Я понимаю, чтоЯ могу связать несколько имен входа под одним идентификатором пользователя (Cognito identityId), но это возможно только в том случае, если такие имена входа добавляются вручную после первого входа.

Например, я вижу сценарий:

  1. Пользователь регистрируется с помощью Cognito UserPool.
  2. Затем, оставаясь аутентифицированным, пользователь аутентифицируется с помощью Facebook.А токены Facebook могут добавляться в логины.
  3. При дальнейшем извлечении процессов вызова AWSCredentials - логин Facebook будет добавлен к идентификатору пользователя в Cognito Identity Pool.
  4. После этого пользователь может войти в систему, используя учетные данные UserPool и аутентификацию Facebook под тем же идентификатором пользователя.

Во-первых, я не уверен, что мой сценарий правильный, но это то, чтоЯ понял, прочитав много постов здесь и документы AWS.

И если сценарий правильный, то я застрял в другом вопросе: как обновить токены?

В AWS C ++ SDK по порядкудля обновления AWS Credential используется вызов CognitoIdentityClient.GetCredentialsForIdentity, но он требует прохождения пользовательских логинов.

Мой более конкретный вопрос: мне нужно пропускать все логины?Требуется ли, чтобы все токены доступа в логинах не истекли?

1 Ответ

0 голосов
/ 04 марта 2019

Обращаясь к первому пункту, вы можете использовать федеративную идентификацию без использования пула пользователей cognito.Это означает, что вы можете просто аутентифицировать пользователя напрямую с помощью Facebook, Google и т. Д. И не добавлять его в пул пользователей.Если вы хотите, чтобы все пользователи были в пуле пользователей, вам нужно будет написать код для принятия определенных параметров от этих поставщиков аутентификации, а затем добавить их вместе с именем пользователя и паролем в ваш пул пользователей.

Теперь включенона ваш вопрос.Для обновления токена вы должны использовать InitiateAuth .В потоке аутентификации вы должны передать «REFRESH_TOKEN_AUTH», а в AuthParameters вы передаете токен обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...