JWT-dekooderi
Liitä JWT dekoodataksesi ja tarkastellaksesi sen otsikkoa, hyötykuormaa ja vaateita.
Mika on JWT?
JSON Web Token (JWT, aannetaan 'jot') on kompakti, URL-turvallinen tokenmuoto, joka on maaritelty RFC 7519:ssa. JWT:t ovat teollisuusstandardiratkaisu todennukseen ja valtuutukseen modernissa web-kehityksessa. Lahes jokainen ohjelmointikieli ja kehys tukee niita.
JWT koostuu kolmesta Base64URL-koodatusta osasta, jotka on erotettu pisteilla: otsikko, hyotykuorma ja allekirjoitus. Otsikko maarittaa algoritmtyypin. Hyotykuorma sisaltaa vaatteet (tietoja kayttajasta tai istunnosta). Allekirjoitus varmistaa, ettei tokenia ole peukaloitu.
Yleiset JWT-vaatteet
- sub: sub (Subject): Tunnistaa kohteen — yleensa kayttajatunnus tai sahkopostiosoite.
- iat: iat (Issued At): Unix-aikaleima, joka ilmaisee, milloin token luotiin.
- exp: exp (Expiration): Unix-aikaleima, jonka jalkeen token ei ole enaa voimassa.
- iss: iss (Issuer): Tunnistaa tokenin myontajan (esim. todennuspalvelimesi).
- aud: aud (Audience): Tunnistaa tokenin tarkoitetun vastaanottajan (esim. rajapintasi).
Tyokalun kayttohje
Liita JWT syotekenttaan. Tyokalu dekoodaa valittomasti otsikon ja hyotykuorman nayttaen vaatteet luettavassa muodossa. Vanhenemisajat muunnetaan luettaviksi paivamaariksi. Allekirjoitusosio naytettaan mutta sita ei voi vahvistaa ilman salaista avainta.
Onko turvallista liittaa JWT:ni tanne?
Kylla. Tama tyokalu dekoodaa JWT:n taysin selaimessasi JavaScriptilla. Dataa ei laheteta millekaan palvelimelle. JWT:t sisaltavat kuitenkin usein kayttajatietoja — ala jaa tokeneitasi muiden kanssa tai julkaise niita julkisesti.
Miten JWT-todennus toimii
Kun kayttaja kirjautuu sisaan, palvelin luo JWT:n, joka sisaltaa kayttajan identiteetin ja oikeudet, allekirjoittaa sen salaisella avaimella ja palauttaa sen asiakkaalle. Asiakas tallentaa tokenin ja lahettaa sen jokaisen API-pyynnon mukana Authorization-otsakkeessa.
Tama lahestymistapa on tilaton — palvelimen ei tarvitse tallentaa istuntodataa tietokantaan. Kaikki tarvittavat tiedot ovat itse tokenissa. Palvelin tarkistaa allekirjoituksen ja lukee vaatteet jokaisesta pyynnostaae. Tama skaalautuu hyvin, koska mika tahansa palvelin voi vahvistaa tokenin jaetulla salaisuudella tai julkisella avaimella.
Yleiset JWT-virheet
Arkaluontoisten tietojen (salasanat, luottokorttinumerot) tallentaminen JWT:n hyotykuormaan on kriittinen virhe. Hyotykuorma on vain Base64-koodattu, ei salattu — kuka tahansa voi dekoodata ja lukea sen. Tallenna JWT:hen vain ei-arkaluontoisia tunnisteita.
Liian pitkien voimassaoloaikojen kayttaminen on toinen yleinen virhe. 30 paivaa voimassa oleva token antaa hyokkaajalle 30 paivaa aikaa kayttaa varastettua tokenia. Kayta lyhyita voimassaoloaikoja (15-60 minuuttia) ja uusi tokeneita paivitystokeneilla.
Usein kysytyt kysymykset
Mika on HS256:n ja RS256:n ero?
HS256 kayttaa jaettua symmetrista salaisuutta — sama avain allekirjoittaa ja vahvistaa tokenin. RS256 kayttaa epasymmetrista avainparia — yksityinen avain allekirjoittaa, julkinen avain vahvistaa. RS256 on turvallisempi hajautetuissa jarjestelmissa, koska vain todennuspalvelin tarvitsee yksityisen avaimen.
Voidaanko JWT kumota?
JWT:t ovat tilattomia, joten niita ei voi kumota suoraan. Yleisia kiertotapoja ovat palvelinpuolen estolistan yllapito (joka kumoaa tilattomuuden edun) tai lyhyiden voimassaoloaikojen kayttaminen paivitystokeneilla. Lyhyemmat voimassaoloajat vahentavat varastettun tokenin vahinkoikkunaa.