jwt

Skratka JWT znamená “JSON Web Token”, čo je kompaktný, bezpečný formát na prenos informácií medzi stranami ako JSON objekt. Používa sa predovšetkým na autentifikáciu a autorizáciu.

Základné vlastnosti JWT:

1.Kompaktnosť: Je malý, vhodný na prenos cez URL, HTTP hlavičky alebo uloženie ako cookie.

2.Samostatnosť: Obsahuje všetky potrebné informácie na overenie bez potreby ďalších databázových dotazov.

3.Bezpečnosť: Môže byť podpísaný (pomocou HMAC alebo RSA) na zabezpečenie integrity a autenticity údajov.

Štruktúra JWT:

JWT sa skladá z troch častí, oddelených bodkami (.):

1.Header (Hlavička): Obsahuje typ tokenu a použitý algoritmus na podpis.

2.Payload (Obsah): Obsahuje údaje (claims), ktoré sa prenášajú.

3.Signature (Podpis): Slúži na zabezpečenie integrity tokenu.

Príklad JWT tokenu:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

1. Header (kódovaný v Base64):

{

  “alg”: “HS256”,

  “typ”: “JWT”

}

2. Payload (kódovaný v Base64):

{

  “sub”: “1234567890”,

  “name”: “John Doe”,

  “iat”: 1516239022

}

3. Signature (podpis):

Generuje sa takto:

HMACSHA256(

  base64UrlEncode(header) + “.” + base64UrlEncode(payload),

  secret

)

Použitie JWT:

1.Autentifikácia:

•Prihlásený používateľ dostane JWT token, ktorý sa posiela s každou požiadavkou na server.

2.Autorizácia:

•Na základe údajov v JWT server rozhodne, či má používateľ povolený prístup k zdrojom.

3.Prenos dát:

•Bezpečný prenos dát medzi stranami s overiteľnou integritou.

Príklad použitia JWT:

1.Používateľ sa prihlási (meno a heslo).

2.Server vygeneruje JWT a odošle ho používateľovi.

3.Pri každej ďalšej požiadavke klient pošle JWT v hlavičke:

Authorization: Bearer <JWT_TOKEN>

4.Server overí podpis a spracuje požiadavku.

Výhody:

•Bez stavu: Server nemusí ukladať tokeny, všetko je obsiahnuté v JWT.

•Rýchlosť: Rýchlejšie ako tradičné metódy autentifikácie.

Nevýhody:

•Ak je JWT kompromitovaný, platnosť môže byť zneužitá, ak token ešte nevypršal.

•Payload nie je šifrovaný, len kódovaný. Citlivé údaje by nemali byť súčasťou.

JWT je moderný a efektívny spôsob autentifikácie a autorizácie, široko používaný vo webových a mobilných aplikáciách.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top