Подтвердить что ты не робот

Может ли Jwt-Auth в laravel обрабатывать недействительные токены в конфигурации с несколькими серверами?

У меня есть larevel REST API, который использует tymondesigns/jwt-auth для аутентификации и хочет масштабировать приложение с одного сервера на несколько серверов с помощью балансировки нагрузки спереди.

В потоке используется промежуточное ПО RefreshToken, и по существу токен недействителен после каждого запроса, а новый возвращается вместе с ответом. (https://github.com/tymondesigns/jwt-auth/wiki/Authentication)

Как jwt собирается управлять недействительными токенами в конфигурации с несколькими серверами, где токен недействителен с использованием одного сервера, а новый запрос с использованием недействительного токена попадает на другой сервер?

4b9b3361

Ответ 1

Правильный способ состоит в том, чтобы включить jti заявку вместе с утверждениями exp и iat.

Другой способ (если вы можете) включить в токен идентификатор сервера (или уникальный ключ). Вы можете реализовать протокол jwt от сервера к серверу, но я думаю, что это будет дорого.

Другой способ - синхронизировать токены между серверами. Я бы использовал демон memcached (возможно, на вашем переднем сервере), который будет содержать список новых недействительных токенов. Если токен действителен только для одного запроса, memcached получит недействительный токен сразу после его использования (возможно, прямо в промежуточном программном обеспечении RefreshToken). Основываясь на отметке времени маркера, вы можете решить, является ли токен недействительным (без перехода на сервер memcached), или, если он будет довольно новым, вы проверите в списке memcached потребляемых токенов. Memcached также будет иметь срок действия. Есть много преимуществ этого метода (например, вы можете использовать теги). Если вы считаете, что этот список является файлом журнала, вы все равно можете сказать, что вы не сделали недействительным принцип без гражданства:)

Надеюсь, что это поможет.