Лучшая практика обработки пользовательских данных с помощью JWT

Я реализую REST API без сохранения состояния через Json Web Tokens (JWT). На данный момент мне интересно, как лучше всего передать пользовательские данные во внешний интерфейс. Это те поля, к которым мне нужно будет получить доступ в интерфейсе username, email, role, full_name, description, profile_img, facebook_id, twitter_id, custom_setting_1, custom_setting_2, custom_setting_3, custom_setting_4

Я вижу 2 варианта:

  1. Во время создания JWT добавьте пользовательские данные в полезную нагрузку JWT. А затем расшифруйте его на переднем конце. Хотя меня беспокоит, что если я добавлю все данные, полезная нагрузка станет довольно большой.
  2. Я могу добавить в JWT только неизменяемые поля, такие как username, role. После того, как JWT создан и возвращен интерфейсу, я отправляю еще один запрос пользовательских данных из API.

Возможно, я тоже что-то упускаю. Поэтому интересно, как лучше всего обрабатывать пользовательские данные с помощью JWT.


person Websirnik    schedule 21.06.2016    source источник
comment
Я пытаюсь понять, зачем для этого нужен JWT. Недостаточно простого JSON?   -  person cassiomolin    schedule 21.06.2016
comment
JWT будет использоваться для аутентификации вызовов API. Итак, на самом деле вопрос: следует ли мне добавлять пользовательские данные в JWT (есть ли у него какие-либо плюсы / минусы) или сохранять дополнительный запрос API для получения пользовательских данных.   -  person Websirnik    schedule 21.06.2016
comment
Пожалуйста, дайте мне знать, был ли мой ответ вам полезен.   -  person cassiomolin    schedule 07.07.2016


Ответы (1)


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

Ваш второй подход имеет гораздо больше смысла:

Я могу добавить в JWT только неизменяемые поля, такие как username, role. После того, как JWT создан и возвращен во внешний интерфейс, я отправляю еще один запрос пользовательских данных из API.

Придерживайтесь JWT и выполните еще один запрос, чтобы получить сведения о пользователе.

Для получения дополнительной информации о том, как создать URL-адрес для возврата данных аутентифицированного пользователя, см. Ниже:

person cassiomolin    schedule 21.06.2016
comment
В моем случае сервер, который генерирует токен, и сервер, который получает токен, являются двумя разными объектами и размещены в разных географических регионах, тогда как мне добавить данные в токен? - person Crosk Cool; 30.05.2021