Получить информацию о пользователе из Cognito с ID - PullRequest
0 голосов
/ 18 октября 2018

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

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

Для хранения статей я использую DynamoDB.Вот пример для элемента статьи:

{
  "ArticleID": "MyUniqueID",
  "title": "My Hello World Article",
  "content": "This is the content of the article",
  "author": "26a16b31-b2c0-4cf3-89f9-d5dcfd56d530" // Cognito User ID.
}

Я использую безсерверную инфраструктуру и лямбда-функции для создания REST API для извлечения документов из базы данных.

Теперь я хочу отобразить псевдоним автора на странице статьи моего блога.Так что я где-то должен получить ник пользователя 26a16b31-b2c0-4cf3-89f9-d5dcfd56d530.

Как я могу это сделать?

Возможности, которые я пытался представить:

  • Использование API Cognito Sync для сохранения пользователяинформация в таблице DynamoDB и добавление конечных точек в мой API для получения этих элементов.
  • Не используйте атрибуты из cognito и создайте внешнюю службу UserProfile
  • Создание конечной точки в моем APIчтобы получить общедоступный профиль пользователя (лямбда-функция будет запрашивать API Amazon Cognito и отфильтровывать общедоступные данные из личных атрибутов.)

Как бы вы это сделали?Какова лучшая практика для этого?

1 Ответ

0 голосов
/ 19 октября 2018

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

Если вы сохраняете атрибуты в своем UserPool, это будет похоже на управление сторонним API для получения его данных, в то время как третья сторона может быть только для аутентификации,Вы всегда можете хранить свои пользовательские данные в своем сеансе localalstorage.

Это гораздо больше архитектурного решения, чем передового опыта.

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