Каковы лучшие практики при использовании JWT для сессий? - PullRequest
0 голосов
/ 28 августа 2018

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

Я думал о том, чтобы сделать идемпотентный запрос (PUT, PATCH, POST, DELETE), возвращающий новый JWT в дополнение к их первоначальному ответу, но мне пришлось отказаться от этой идеи по двум причинам, потому что

  1. Решение не RESTful (я эффективно комбинирую запрос на обновление токена с исходным запросом).
  2. Это нарушает принцип единой ответственности, и мне придется испачкать мои контролеры.

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

Каковы лучшие практики в этой ситуации?

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