Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Ez egy AI által fordított bejegyzés.

Seize the day

Mi a JWT (JSON Web Token)?

  • Írás nyelve: Koreai
  • Referencia ország: Minden ország country-flag

Válasszon nyelvet

  • Magyar
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी

A durumis AI által összefoglalt szöveg

  • A JSON Web Token (JWT) egy kódolt token, amely az információk biztonságos átvitelét teszi lehetővé.
  • A JWT fejlécből, hasznos adatokból és aláírásból áll, az aláírás biztosítja az adatok integritását.
  • A JWT nem igényel külön állapotinformáció-tárolást, így a disztribúált környezetben jó skálázhatóságot biztosít.

Mi a JWT?

A JSON Web Token (JWT) egy olyan szabványosított (RFC 7519) módszer, amely lehetővé teszi az információk biztonságos átvitelét JSON objektumok formájában. A lényeg az, hogy a szükséges információkat tokenekbe csomagoljuk, majd titkosítjuk.


A JWT-t hangsúlyozottan aláírt tokenként (signed token) definiálják. Ha a titkosításhoz nyilvános/privát kulcspárt használnak, az aláírás garantálja, hogy a tokent csak az a fél írta alá, aki birtokolja a privát kulcsot. Ez azt jelenti, hogy a kulccsal rendelkező szerver ellenőrizheti a token érvényességét.


A JWT felépítése

A JWT egy headerből (Header), egy payloadból (Payload) és egy aláírásból (Signature) áll.

Az egyes részek Base64-ben vannak kódolva, és pontokkal (.) vannak elválasztva. 

Header

{
    "alg": "HS256",
    "typ": "JWT"

A header két fontos információt tartalmaz: a token típusát (typ) és az alkalmazott aláírási algoritmust (alg). Az aláírási algoritmust a token aláírásának létrehozására és ellenőrzésére használják.

A typ "JWT"-re van állítva, az alg pedig HMAC, SHA256 stb. lehet. A fenti példában a HS256 algoritmust használjuk privát kulccsal. 

Payload

{
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022


A payload tartalmazza azokat az állításokat (Claim), amelyeket a tokennel szeretnénk átadni. Tartalmazhatja a felhasználó azonosító adatait vagy a tokennel kapcsolatos tulajdonságokat kulcs-érték párok formájában. A fejlesztők szabadon meghatározhatják a payload tartalmát!

A szabványos specifikációk szerint a kulcsok neveit tömören, 3 karakterrel definiálják.

A regisztrált állítások a következők: 

  • iss (Issuer): A token kiadója (tartalmazza a token kiadója egyedi azonosítóját)
  • sub (Subject): A token célpontja
  • aud (Audience): A token címzettje
  • exp (Expiration Time): A token lejárati ideje (a lejárati idő után a token érvénytelen lesz)
  • nbf (Not Before): A token aktiválási ideje (a megadott időpont előtt a token nem használható)
  • iat (Issued At): A token kiállításának ideje
  • jti (JWT Id): A JWT token azonosítója (több kiadó esetén lehetővé teszi a kiadók megkülönböztetését)


A fentieken kívül további, szükséges értékeket is hozzáadhatunk. 

Fontos azonban megjegyezni, hogy a payload nem titkosított, csak aláírt érték, ezért nem szabad benne érzékeny információkat tárolni.

Dekódolással bárki megtekintheti a tartalmát. jwt.io weboldalon közvetlenül is ellenőrizhető.

Signature

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    your-256-bit-secret

A header és a payload Base64-ben kódolt értékeit a pont (.) karakterrel összekapcsolják, majd a your-256-bit-secret (a szerver privát kulcsa) segítségével aláírják. 

Így csak a tokent kiadó szerver tudja a privát kulccsal visszafejteni az aláírást (Signature).

A visszafejtés során a privát kulccsal dekódolják az aláírást, majd ellenőrzik, hogy a base64UrlEncode(header) megfelel-e a JWT headerének, és a base64UrlEncode(payload) megfelel-e a payloadnak. 

Az aláírástól eltekintve a header és a payload csak kódolva van, így az információk láthatók, de az aláírás garantálja az információk integritását és biztonságát. 



A JWT önálló (Self-contained) token, amely tartalmazza az összes szükséges információt, így kiküszöböli a stateful szekciók hátrányait. A JWT nem igényel külön tárolót. 

A szervernek nem kell szekciókat fenntartania, ami azt jelenti, hogy stateless. Ez nagyobb mértékű skálázhatóságot biztosít a disztribúciós rendszerekben és a mikroszervíz architektúrákban. 

Az aláírás (Signature) egy digitális aláírás, amely biztosítja a token biztonságát és az adatok integritását.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
[Hatékony Java] 1. elem. Próbálja meg a statikus gyári metódusokat a konstruktorok helyett. A statikus gyári módszerek kényelmes megoldást kínálnak az objektumok létrehozásának vezérlésére, mivel névvel rendelkeznek. Hatékony, mivel nem kell mindig új példányt létrehozni, hanem visszaadhatja a meglévő példányt. Hátránya, hogy a öröklődés nehéz,
제이온
제이온
제이온
제이온

2024. április 27.

Használj ingyenes pénzügyi tanúsítványt a fizetett közös tanúsítvány helyett! Bemutatjuk a közös tanúsítvány helyett ingyenesen igényelhető pénzügyi tanúsítványt. 3 perc alatt igényelhető és 3 évig használható, így kényelmes. Az igénylés banki weboldalon keresztül történik, és felhasználható a HomeTax, a nemzeti nyugdíjbiztosítás,
길리
길리
길리
길리
길리

2024. április 17.

Bízz az emberi testben A Google Passkey bevezetése a jelszó korszakának végét jelenti, de felveti az emberi testet digitális hitelesítési eszközként történő felhasználásával kapcsolatos etikai problémákat. Az emberi test egyedisége és érzékelési képessége nem helyettesíthető te
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son

2024. május 10.

equals() vs hashCode() A Java `equals()` és `hashCode()` metódusok fontosak az objektumok egyenlőségének és azonosságának összehasonlításában. Az `equals()` összehasonlítja az objektumok tartalmát, míg a `hashCode()` az objektumok azonosságát. A hash-adatszerkezetekben a `hashC
제이온
제이온
제이온
제이온

2024. április 25.

[Javascript] Az objektum szerkezete (V8) A JavaScript objektumok a V8 motorban a gyors módnak megfelelő szerkezetek szövegéhez optimalizálódnak, vagy szótár módként működnek hash-táblaként, a állapottól függően. A gyors mód gyors, de ha új kulcsot adnak hozzá, vagy elemet törölnek, a szótár módb
곽경직
곽경직
곽경직
곽경직
곽경직

2024. március 18.

Mi az a Java Collections Framework (JCF)? - A JCF definíciója és jellemzői (JAVA) A Java Collections Framework (JCF) egy olyan szabványosított módszert kínál a Java osztályok halmaza, amely hatékonyan kezeli a nagy mennyiségű adatot. A JCF adatstruktúrákat és algoritmusokat implementál osztályokban, növelve a kód újrafelhasználhatóságá
제이온
제이온
제이온
제이온

2024. április 27.