Я ищу несколько указателей относительно конструкции системы. Я всегда был разработчиком внутреннего сервера, но изучал некоторые части интерфейса и не мог выбрать лучший способ справиться с этим.
У меня есть довольно простой веб-сайт с несколькими страницами, скажем Страница пользователя,Страница товаров, страница просмотра. Каждая из этих областей имеет внутренний микросервис, обслуживающий соответствующий API CRUD REST (пользовательский сервис, элементный сервис, обзорный сервис). Вдобавок к этому есть отдельная служба авторизации (oauth2) для создания токенов и т. Д.
Сейчас я думаю следующее:
Сервер Nodejs размещает веб-контент и обслуживает еговверх. Пользователь переходит на страницу входа, сервер узла получает его и выполняет вызов (с соответствующим идентификатором client_id, именем пользователя, паролем и т. Д.) На сервер аутентификации и получает токен JWT обратно, сервер узла перенаправляет пользователя после установкиJWT в локальном хранилище на их странице пользователя. Затем пользователь может перейти на веб-сайт и перейти на страницу «Элементы», nodejs получает этот запрос и выполняет соответствующий вызов (получить все) для API-интерфейса микросервиса элементов, предоставляющего маркер в запросе. Информация возвращается на nodejs и предоставляет пользователю доступ к странице.
Похоже ли это на разумное решение? Я спрашиваю, потому что большая часть информации / примеров, на которые я смотрю, как правило, основана на всем, что размещено на сервере nodejs (все APIS: аутентификация, пользователь, элементы и т. Д.). В то время как в моем случае все они раздельные (я ничего не могу с этим поделать).
Кроме того, еще один вопрос, касающийся этого, заключается в том, как управлять достоверностью токенов. Будет ли лучше использовать jwt management npm, и когда каждый запрос приходит от клиента к серверу узла, проверяет срок его действия и т. Д. Я подумал, что это будет проще для выхода из системы / удаления токена и перенаправления на страницу входа. Вместо того, чтобы каждый раз попадать на сервер аутентификации.
Это немного много? Мне вообще нужен узел? Должен ли я справиться с этим через клиентскую среду?
Заранее спасибо.