Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 58862|Ответ: 3

[Источник] Узнайте, как понимать JWT (JSON Web Tokens).

[Скопировать ссылку]
Опубликовано 21.05.2018 15:56:52 | | | |
Введение в JWT: JSON Web Token (JWT) — это открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасной передачи информации между сторонами в объектах JSON. Эту информацию можно проверить и доверить с помощью цифровых подписей. JWT можно подписывать с помощью секретов (с использованием алгоритма HMAC) или с помощью пар публичных/приватных ключей RSA.


Некоторые сценарии, где JSON Web Tokens полезны:

Проверка личности:Это самый распространённый случай использования JWT. После входа пользователя каждый следующий запрос будет содержать JWT, позволяющий пользователю получать доступ к маршрутам, сервисам и ресурсам, разрешённым этим токеном. Функция единого входа — это функция, широко используемая сегодня благодаря низким накладным расходам и возможности удобного использования в разных областях.

Обмен информацией:JSON Web Tokens — отличный способ безопасной передачи информации между сторонами. Поскольку JWT можно подписывать — например, используя пары публичных/приватных ключей, можно быть уверенным, что отправитель — это тот, за кого он себя выдаёт. Кроме того, поскольку подпись рассчитывается с помощью заголовков и полезных нагрузок, вы также можете проверить, что содержимое не было изменено.


Официальный сайт:Вход по гиперссылке виден.

Разбор информации о JWT онлайнВход по гиперссылке виден.



Анализ параметров JWT онлайн  Вход по гиперссылке виден.

Моё понимание JWT ниже неверно, пожалуйста, дайте мне совет

Во-первых, эту вещь не рекомендуется использовать на сайте MVC, её можно использовать в webapi, позиционирование этого устройства — это API, а не сессия заменяющего сайта!

asp.net обучающее руководство по использованию webapi:Вход по гиперссылке виден.Я не буду переделывать колесо, смотреть, что написана в этой статье — это нормально.

Состав JWT

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


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

Например:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

{
alg: "HS256",
typ: "JWT"
}.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022
}.
[подпись]

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


Здесь есть проблема: если пользователь меняет пароль или ему запрещено входить, как JWT может проверить валидность токена?

Моя собственная идея — добавить строку, похожую на guid, в раздел Payload, а затем существовать в кэше, при проверке личности пользователя не только проверять jwt, но и информацию о полезной нагрузке в jwt, мы можем контролировать валидность, контролируя кэш.







Предыдущий:Фреймворк с открытым исходным кодом C# (перепечатка)
Следующий:Вы используете режим безопасного обновления и пытались обновить T
Опубликовано 22.08.2018 14:42:27 |
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。


Это набор заранее определённых деклараций, которые не являются обязательными, но рекомендуются для предоставления полезного, совместимого набора деклараций. Некоторые из них: ISS (эмитент), exp (срок истечения), саб (тема), aud (аудитория) и т.д.

https://jwt.io/introduction/


 Хозяин| Опубликовано 27.04.2021 10:59:48 |
Заголовок (после Base64)
Полезная нагрузка (после Base64)
секрет

Строка base64 меньше кратного 4, и нужно заполнить =
 Хозяин| Опубликовано 21.01.2022 17:09:52 |
"IAT" = > 1356999524, #token发布时间
"exp" = > 1556999524, #token过期时间
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com