Какая разница между JWT и маркером-носителем?

Я изучаю что-то о авторизации, например Basic, Digest, OAuth2.0, JWT и токен.

Теперь у меня есть вопрос.

Вы знаете, что JWT используются как Access_Token в стандарте OAuth2.0. JWT отображаются на RFC 7519, а токен-носитель - на RFC 6750.

Например, носитель:

Authorization: Bearer <token>

Я использовал для отправки токена на сервер AJAX или добавлял токен в строку запроса URL-адреса. Я знаю, что токен можно также отправить, добавив его в заголовок запроса. Означает ли это, что токен должен быть добавлен в заголовок "Насыщенность авторизации"?

Не могли бы вы рассказать мне о взаимоотношениях между JWT и Toker Token? Большое спасибо.

Ответ 1

JWT - это стандарт кодирования для токенов, который содержит полезную нагрузку данных JSON, которая может быть подписана и зашифрована.

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

Маркерные маркеры могут быть включены в HTTP-запрос по-разному, один из них (возможно, предпочтительный) является заголовком авторизации. Но вы также можете поместить его в параметр запроса, куки файл или тело запроса. Это в основном между вами и сервером, к которому вы пытаетесь получить доступ.

Ответ 2

Короткий ответ

JWT - удобный способ кодирования и проверки претензий.

Маркер-носитель - это просто строка, потенциально произвольная, которая используется для авторизации.

Контекст (время истории)

Несколько лет назад, перед революцией JWT, <token> была просто строкой, не имеющей внутреннего значения, например. 2pWS6RQmdZpE0TQ93X. Затем этот токен был просмотрен в базе данных, которая содержала претензии для этого токена. Недостатком этого подхода является то, что доступ к БД (или кэш) требуется каждый раз, когда используется токен.

JWT кодируют и проверяют (посредством подписания) свои собственные претензии. Это позволяет людям выпускать недолговечные JWT, которые являются апатридами (читайте: автономно, не зависимо от кого-либо еще). Им не нужно попадать в БД. Это уменьшает нагрузку на БД и упрощает архитектуру приложения, потому что только служба, которая выдает JWT, должна беспокоиться о попадании на уровень DB/persistence (refresh_token, который вы, вероятно, встретили).