2014-12-02 4 views
1

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

Я могу аутентифицировать своего пользователя, используя метод: getOpenIdTokenForDeveloperIdentity и поставляя IdentityPoolId и пару ключей логинов с моим именем поставщика-разработчика и токеном, который я предоставляю.

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

Единственная техника, которую я могу придумать, - это сохранить IdentityId в моей собственной БД и предоставить свой собственный метод ее извлечения. Это лучший способ? Или я должен работать с этой структурой по-разному?

Я все еще новичок в AWS в целом, и я просто пытаюсь понять лучшие практики для этой структуры.

BTW, я реализую SDK для Android и PHP SDK для своего бэкэнд.

ответ

2

Когда вы используете getOpenIdTokenForDeveloperIdentity, он возвращает идентификатор идентификатора, связанный с указанным вами идентификатором пользователя. Поэтому, если пользовательский идентификатор, который вы используете, является именем пользователя пользователя, когда вы вызываете getOpenIdTokenForDeveloperIdentity с тем же именем пользователя со второго устройства, он возвращает идентификатор идентификатора. Нет необходимости хранить идентификатор идентификатора, если вы этого не хотите, он предоставляется вам каждый раз, когда вы вызываете getOpenIdTokenForDeveloperIdentity.

Этот блог может быть дальнейшей помощи:

http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident

+0

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

+0

Поскольку вы должны называть getOpenIdTokenForDeveloperIdentity из вашей базовой службы и подписывать запрос с вашими учетными данными разработчика, использование имени пользователя должно быть прекрасным. Однако вы можете хэш-идентификатор пользователя. – behrooziAWS

+0

отлично, спасибо большое! – ethan123

0

Когда вы используете Cognito, ваш пользователь сначала выполняет аутентификацию с помощью поставщика удостоверений (например, facebook, google или другого поставщика Oauth), а токен, который вы получаете от него, отправляется в Cognito и является ключом к связыванию информации ваших пользователей вместе через логины на других устройствах.

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

+0

Привет, спасибо за ответ. Я пишу свой собственный поставщик удостоверений личности. Вот почему я использую метод getOpenIdTokenForDeveloperIdentity. В этом случае лучший способ - просто сохранить IdentityId самостоятельно? Это все? – ethan123

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

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