Микросервис API-интерфейс шлюза - PullRequest
0 голосов
/ 13 июня 2019

У меня есть некоторые трудности с дизайном REST API в микросервисах.Все сервисы написаны на javascript.

Не могли бы вы предоставить мне лучшее решение для шлюза API, которое поддерживает авторизацию jwt и websocket.

У меня есть следующий сценарий:

  1. Главный интерфейс - реакция (панель инструментов, вход в систему)
  2. Основной интерфейс - nodejs
  3. Сервис1 интерфейс - реагирование
  4. Бэкэнд Service1 - nodejs
  5. Фронтенд Service2 - реакция
  6. Бэкэнд Service2 - nodejs

Я изучаю шлюз KONG api.Мне нужно реализовать, если пользователь вошел в основной фронт, он может получить доступ к service1 и service2, если не вошел, перенаправить пользователя на основной интерфейс.

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

если вы используете шлюз kong api, вы можете решить эту проблему, используя множественную аутентификацию

если вы используете авторизацию jwt, вы можете найти анонимное поле в настройках плагина jwt

это можно решить вследующим образом

  1. создать анонимного потребителя
  2. заполнить анонимное поле в конфигурации jwt для идентификатора потребителя (например, xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx), который вы сделали
  3. применять плагины jwt ко всем сервисам и маршрутизаторам
  4. если вы запрашиваете без токена jwt, вы можете найти HTTP_X_ANONYMOUS_CONSUMER=true в мета заголовка запроса
  5. , чтобы вы могли проверить пользователя или анонимного во всех сервисах

я думаю, что следующая ссылка поможет вам https://docs.konghq.com/0.14.x/auth/

0 голосов
/ 13 июня 2019

Для простого сценария вы можете разработать собственное решение, основанное, например, на экспрессе и плагинах (socket.io + jwt).Другой может быть для вашего сценария будет хорошим сервером GraphQL, как этот https://www.apollographql.com/docs/apollo-server/

...