Как узнать, какой пользователь когнито запускает лямбда-функцию? - PullRequest
0 голосов
/ 21 июня 2020

Есть ли способ определить, какой пользователь из пользовательского пула Cognito запускает лямбда-функцию через API-шлюз? Я делаю простое веб-приложение с бэкэнд python, которое работает на лямбде. Мне нужно знать «вспомогательный UUID» пользователя Cognito, запустившего функцию, чтобы показать им соответствующую информацию из моей базы данных DynamoDB. Есть ли способ узнать, кто активировал эту функцию, когда они это делают при входе в Cognito?

1 Ответ

1 голос
/ 21 июня 2020

Вы можете использовать токен JWT, в котором хранится информация о конкретном пользователе. Вот один из способов сделать это:

  1. Когда вы создаете пользователя Cognito, сохраните его вспомогательный UUID в своей таблице DynamoDB, установив UUID в качестве первичного ключа
  2. Когда пользователь впервые входит в систему в, используйте Cognito API для их аутентификации. В случае успеха вы можете увидеть данные, которые Cognito имеет о них, включая их UUID
  3. Сохраните этот UUID внутри токена JWT (вы можете использовать библиотеку pyjwt для этого, если вы using python)
  4. Установить приготовление только HTTP ie для пользователя, содержащего JWT
  5. Теперь всякий раз, когда пользователь делает запрос к вашему шлюзу API, и он аутентифицирован, вы можете извлечь Cook ie, который был отправлен вместе с запросом внутри вашей лямбда-функции
  6. Проверьте JWT, чтобы убедиться, что он подлинный и не был изменен
  7. Извлеките свойство UUID из JWT
  8. Используйте UUID для запроса вашей таблицы DynamoDB для вашего конкретного пользователя, а затем покажите им соответствующую информацию

Это всего лишь один из способов сделать это. Вы также можете использовать сеансы или хранить JWT в localStorage браузера (хотя при этом следует учитывать риски безопасности).

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