Node.js, AWS Cognito - вход в систему с внешнего интерфейса, проверка пользователя на сервере - PullRequest
0 голосов
/ 21 января 2019

У меня есть приложение, которое состоит из фронтэнда Angular и Backend Node.js.Я использую AWS Cognito для аутентификации во внешнем интерфейсе, однако мне нужно знать, прошел ли пользователь аутентификацию в моем бэкенде Node.js, чтобы разрешить некоторые маршруты.

Сейчас у меня есть два решения:

  • Отправляйте токен JWT спереди назад при каждом вызове маршрута, чтобы увидеть, правильно ли пользователь вошел в систему. Но я не знаю, как это повлияет на мои бэкэнд-исполнения и не будет ли этохорошая практика, и если есть безопасный способ сделать это
  • В Node.js (я также использую экспресс), проверьте, с какого веб-сервера вызывается маршрут.Если это из моего домена, значит, я могу разрешить маршрут

Каким должен быть способ решения этой проблемы?

1 Ответ

0 голосов
/ 22 января 2019

Отправляйте либо идентификатор Cognito, либо токен доступа вместе с каждым запросом и декодируйте его самостоятельно.Жетоны подписаны.AWS предоставляет механизм загрузки ключей подписи для вашего пула пользователей.Вам потребуются дополнительные ресурсы для запуска RSA для проверки токенов, но стоимость должна быть незначительной.

Существует множество ресурсов о том, как самостоятельно декодировать токены:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html

https://github.com/awslabs/aws-support-tools/tree/master/Cognito/decode-verify-jwt

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