У меня есть сервер nginx, на котором запущены 2 разных приложения express.js.
Первое приложение:
- Обрабатывает основной веб-сайт и имеет сервер авторизации с использованием веб-токенов JSON (JWT)
- Имеет некоторые API-маршруты, защищенные с помощью аутентификации JWT
- Работает на порте 4000
Второе приложение:
- Обрабатывает другую службуна поддомене
- Имеет некоторый набор маршрутов API
- Работает на порте 5000
Я пытаюсь защитить некоторые API во втором приложении с помощью JWT изсервер аутентификации в первом приложении.
Чтобы справиться с этим, я предложил 2 решения:
- Используйте тот же секретный ключ JWT во втором приложении, чтобы я мог декодироватьи проверить JWT, который позволил бы мне прочитать некоторые данные из него и вернуть правильный ответ.Это добавило бы некоторую сложность моим приложениям, в которых мне всегда приходилось бы обновлять ключ в обоих приложениях после их изменения.
- Создайте несколько маршрутов в первом приложении, к которым можно получить доступ только из localhost, проверив, если
req.connection.remoteAddress
равно 127.0.0.1
или ::ffff:127.0.0.1
или ::1
.Эти маршруты позволили бы мне проверить JWT, но я не уверен, что удаленный адрес может быть каким-либо образом подделан и позволил бы посторонним проверить их JWT.
Я не хочу объединять оба приложенияпросто, чтобы я мог держать все в чистоте.
Есть ли какой-нибудь хороший вариант из двух упомянутых мной решений?Если нет, то есть ли какое-нибудь решение, которое вы, ребята, порекомендуете для решения такой проблемы?