2016-12-31 3 views
0

У меня есть веб-сервис, который аутентифицирует пользователя, и в случае успеха дает им Web-токен JSON, который они могут использовать для сохранения своей сессии.
В настоящее время у меня только один сервер, но в идеале хотелось бы увеличить его до двух или более ради производительности, однако я не уверен, как это будет работать с разными серверами, поскольку у них будут разные экземпляры поддержки кто сейчас вошёл в систему.Как управлять сеансами пользователя на нескольких серверах?

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

Очень простая версия моей службы приведена ниже, с черными стрелками, представляющими обычную связь, и красными стрелками, представляющими связь, в случае, если Layer One решает направлять запрос на экземпляр второго. Layer One, по сути, очень простой и на самом деле не делает ничего, кроме маршрутного трафика, на следующий уровень, в зависимости от наличия двух экземпляров уровня.

enter image description here

ответ

0

Одним из главных преимуществ JWT является то, что она не нуждается в памяти сервера, поскольку она является самодостаточной и лицами без гражданства. Если вам нужны серверные сессии, может быть JWT, это не лучший вариант для управления аутентификацией. См. Stop using JWT for sessions

В настоящее время серверы приложений используют идентификатор SESSION для управления балансировкой нагрузки и перенаправлением на сервер, который хранит сеанс пользователя, включая постоянное хранение и миграцию сеанса. Используя JWT, вы не будете получать прибыль от этих характеристик.

Используйте JWT, если вам нужна конечная точка без учета состояния без проверки состояния с аутентификацией или вам необходимо безопасно обмениваться данными между сторонами.