Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 |
Header (після 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