Käyttöohje
- Kopioi token Authorization-headerista, evästeestä tai selaimen kehittäjätyökaluista. Mahdollinen alussa oleva “Bearer ” poistetaan automaattisesti.
- Liitä se kenttään. Header ja payload näkyvät muotoiltuna JSON:ina.
- Tarkista tilanneriviltä ja claims-taulukosta myöntäjä, yleisö ja vanhenemisajat paikallisessa ajassasi.
- Kopioi header- tai payload-JSON, jos tarvitset sitä muualle.
Näin se toimii
JSON Web Token (JWT, RFC 7519) koostuu tavallisessa allekirjoitetussa muodossaan (JWS) kolmesta pisteellä erotetusta base64url-koodatusta osasta. Otsikko kertoo, millä algoritmilla token on allekirjoitettu, esimerkiksi HS256 (HMAC SHA-256:lla) tai RS256 (RSA). Hyötykuorma sisältää claimit: tiedot käyttäjästä ja tokenista itsestään. Allekirjoituksen avulla palvelin voi tarkistaa, ettei otsikkoa ja hyötykuormaa ole muutettu.
Otsikko ja hyötykuorma ovat vain koodattuja, eivät salattuja. Kuka tahansa, jolla on token, voi lukea sen sisällön, ja juuri sitä tämä työkalu tekee. Älä laita salaisuuksia JWT-hyötykuormiin.
Dekoodaus ei todista tokenista mitään. Ilman myöntäjän avainta kukaan ei voi sanoa, onko allekirjoitus aito, joten työkalun tulosta ei saa koskaan käyttää tokenin luotettavuuden arviointiin. Varmennus kuuluu palvelimellesi, jossa on ylläpidetty JWT-kirjasto, joka tarkistaa allekirjoituksen, algoritmin sekä exp-, nbf-, iss- ja aud-kentät.
Rekisteröidyt claimit on selitetty taulukossa. exp, nbf ja iat ovat NumericDate-arvoja: sekunteja 1. tammikuuta 1970 UTC alkaen. Työkalu muuntaa ne päivämääriksi aikavyöhykkeelläsi ja vertaa niitä laitteesi kelloon ilman sitä pientä joustoa, jonka palvelimet usein sallivat kelloeroille. Jos kellosi on väärässä, myös tila on väärin.
Viisiosaiset tokenit ovat salattuja JWT:itä (JWE). Niiden hyötykuormaa ei voi dekoodata ilman avainta, joten työkalu ilmoittaa vain muodon.
Esimerkit
Miksi API palauttaa 401?
Dekoodaa käyttöoikeustoken, jonka sovelluksesi lähettää. Jos tilarivillä lukee ”Vanhentunut …”, asiakassovelluksen on päivitettävä token. Jos aud näyttää https://api.example.com mutta kutsut osoitetta https://api2.example.com, yleisö ei täsmää.
OpenID Connect ID-tokenin tarkistaminen
Sisäänkirjautumisen tarjoajan ID-token sisältää iss (tarjoaja), sub (pysyvä käyttäjätunnus), aud (asiakastunnuksesi), iat ja exp sekä profiilitietoja, kuten email ja name. Purkamalla näet, mitkä claimit sovelluksesi todella saa.
Aikaleima-claimin lukeminen
Payload sisältää "exp": 1735689600. Claims-taulukko näyttää sen muodossa 1. tammikuuta 2025, 00:00:00 UTC, muunnettuna paikalliseen aikaan, sekä sen, kuinka kauan siitä on kulunut tai kuinka kaukana tulevaisuudessa se on.
Usein kysytyt kysymykset
Todentaako tämä työkalu JWT-allekirjoituksen?
Ei. Se vain purkaa headerin ja payloadin. Todentaminen vaatii salaisuuden (HS256) tai myöntäjän julkisen avaimen (RS256 ja ES256), ja se tulee tehdä palvelimellasi luotettavalla kirjastolla.
Onko tokenin liittäminen tänne turvallista?
Token puretaan selaimessasi, eikä sitä lähetetä minnekään. Siitä huolimatta voimassa oleva token toimii kuin salasana vanhenemiseensa asti, joten käytä mieluiten vanhentuneita tai testitokeneita äläkä koskaan liitä tuotantotokeneita työkaluihin, joihin et luota.
Miksi kuka tahansa voi lukea payloadin?
Allekirjoitetut JWT:t on koodattu base64url-muodossa, joka ei ole salausta. Allekirjoitus suojaa tokenia muutoksilta, ei lukemiselta. Jos sisällön on oltava salainen, käytä salattua JWT:tä (JWE) tai säilytä tiedot palvelimella.
Mitä “exp” tarkoittaa ja missä yksikössä se on?
exp on vanhenemisaika NumericDate-muodossa: kokonaisia sekunteja (ei millisekunteja) alkaen 1970-01-01 00:00:00 UTC. Token on hylättävä tuolla hetkellä tai sen jälkeen.
Miksi saan ilmoituksen “not valid base64url”?
Token on todennäköisesti katkennut tai muuttunut kopioitaessa, esimerkiksi sen viimeiset merkit ovat kadonneet, sen ympäriltä puuttuvat lainausmerkit tai URL-koodaus on vaihtunut (%2E pisteen sijasta). Liitä raaka token täsmälleen sellaisena kuin se myönnettiin.
Tietosuoja
Token puretaan JavaScriptillä selaimessasi. Sitä ei lähetetä millekään palvelimelle, ei tallenneta eikä sisällytetä analytiikkaan. Allekirjoitusta ei varmenneta eikä avaimia haeta, joten verkkopyyntöjä ei tehdä.