Проверка одного и того же JWT в двух отдельных приложениях Express - PullRequest
0 голосов
/ 26 октября 2018

У меня есть сервер nginx, на котором запущены 2 разных приложения express.js.

Первое приложение:

  • Обрабатывает основной веб-сайт и имеет сервер авторизации с использованием веб-токенов JSON (JWT)
  • Имеет некоторые API-маршруты, защищенные с помощью аутентификации JWT
  • Работает на порте 4000

Второе приложение:

  • Обрабатывает другую службуна поддомене
  • Имеет некоторый набор маршрутов API
  • Работает на порте 5000

Я пытаюсь защитить некоторые API во втором приложении с помощью JWT изсервер аутентификации в первом приложении.

Чтобы справиться с этим, я предложил 2 решения:

  1. Используйте тот же секретный ключ JWT во втором приложении, чтобы я мог декодироватьи проверить JWT, который позволил бы мне прочитать некоторые данные из него и вернуть правильный ответ.Это добавило бы некоторую сложность моим приложениям, в которых мне всегда приходилось бы обновлять ключ в обоих приложениях после их изменения.
  2. Создайте несколько маршрутов в первом приложении, к которым можно получить доступ только из localhost, проверив, если req.connection.remoteAddressравно 127.0.0.1 или ::ffff:127.0.0.1 или ::1.Эти маршруты позволили бы мне проверить JWT, но я не уверен, что удаленный адрес может быть каким-либо образом подделан и позволил бы посторонним проверить их JWT.

Я не хочу объединять оба приложенияпросто, чтобы я мог держать все в чистоте.

Есть ли какой-нибудь хороший вариант из двух упомянутых мной решений?Если нет, то есть ли какое-нибудь решение, которое вы, ребята, порекомендуете для решения такой проблемы?

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