Передача и обновление разрешений / ролей в jwt - PullRequest
0 голосов
/ 23 января 2019

У меня есть вопрос относительно передачи ролей / разрешений в JWT. Так как я хочу быть без состояния с хорошей производительностью, я хочу сохранить роли / разрешения внутри JWT, который я передаю клиенту. Для веб-запроса я помещу JWT в файл cookie, а для API остальных я верну JWT в теле ответа.

Что произойдет в случае изменения пользовательских ролей / разрешений?

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

Но что мне делать в вызовах Rest API? Есть ли общее решение для этого? Для вызовов API у меня нет такого механизма, как веб-запрос, чтобы браузер автоматически брал cookie из ответа и сохранял его в браузере.

Я подумал, может быть, добавить новый JWT в заголовок ответа, но, в отличие от веб-браузера, я не могу гарантировать, что клиент примет новый JWT, что может вызвать несколько проблем: 1. Клиент не будет осведомлен о новых ролях и может принимать неправильные решения на его стороне 2. Клиент может отправить старую JWT снова, что может заставить серверную часть обновлять роли снова и снова (я хочу, чтобы на стороне сервера не было состояния)

пожалуйста, совет.

спасибо!

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