Header
JWT header består av token type og algoritme som brukes til signering og koding. Algoritmer kan VÆRE HMAC, SHA256, RSA, HS256 eller RS256.
{
"typ": "JWT",
"alg": "HS256"
}
Nyttelast
Nyttelast består av øktdataene som kalles krav. Nedenfor er noen av de standard krav som vi kan bruke,
- Utsteder (iss)
- Emne(under)
- Målgruppe (aud)
- Utløpstid (exp)
- Utstedt på (iat)
{
"sub": "user10001",
"iat": 1569302116
}
Tilpassede krav kan også inkluderes i kravsettet. Når du bruker egendefinerte kravsett,
- ikke legg store data i kravsett. Krav sett ment å være kompakt.
- ikke legg sensitiv informasjon siden, JWT kan dekodes enkelt.
{
"sub": "user10001",
"iat": 1569302116,
"role": "admin",
"user_id": "user10001"
}
Signatur
Signatur er den viktigste delen AV ET Json Webtoken(JWT). Signaturen beregnes ved å kode toppteksten og nyttelasten Ved Hjelp Av Base64url-Koding og sammenkjede dem med en periodeseparator. Som deretter er gitt til kryptografisk algoritme.
// signature algorithm
data = base64urlEncode( header ) + "." + base64urlEncode( payload )signature = HMAC-SHA256( data, secret_salt )
så når overskriften eller nyttelasten endres, må signaturen beregnes igjen. Bare Identitetsleverandøren (IdP) har den private nøkkelen til å beregne signaturen som forhindrer manipulering av token.
hvordan fungerer det?
i Utgangspunktet genererer identitetsleverandøren(IdP) EN jwt-sertifisert brukeridentitet og Ressursserver dekoder og verifiserer autentisiteten til token ved hjelp av hemmelig salt / offentlig nøkkel.
- pålogging Med brukernavn og passord eller google / facebook.
- Godkjenningsserver verifiserer legitimasjonen og utsteder en jwt-signert med enten en hemmelig salt eller en privat nøkkel.
- Brukerens Klient bruker JWT til å få tilgang til beskyttede ressurser ved å sende JWT I HTTP-Autorisasjonshodet.
- Resource server verifiserer deretter autentisiteten til token ved hjelp av den hemmelige salt / offentlige nøkkelen.