UltKit

JWT dekoder

JSON Web Token-i yapışdırın və onun başlığını və payload hissəsini formatlanmış JSON kimi oxuyun. Bitmə və verilmə vaxtları tarix şəklində göstərilir, tokenin hazırda etibarlı olub-olmadığı da qeyd olunur. Dekodlama tamamilə brauzerinizdə aparılır. Token aktiv giriş məlumatıdırsa, bu xüsusilə vacibdir.

0 simvol · 0 söz · 0 sətir

0 simvol · 0 söz · 0 sətir

Tamamilə bu brauzer səkməsində işləyir. Mətniniz heç vaxt yüklənmir və saxlanmır.

Qeydiyyatlı claim-lər

RFC 7519 §4.1-də müəyyən edilmiş yeddi claim adı. Hamısı ixtiyaridir; vaxtlar 1970-01-01 UTC-dən bəri saniyələrlədir.

ClaimMənası
issIssuer: tokeni kim yaradıb və imzalayıb
subSubject: tokenin aid olduğu istifadəçi və ya subyekt
audAudience: tokenin kimin üçün nəzərdə tutulduğu
expBitmə vaxtı: bu andan sonra tokeni rədd edin
nbfNot before: bu andan əvvəl tokeni rədd edin
iatIssued at: token nə vaxt yaradılıb
jtiJWT ID: təkrar istifadənin qarşısını almaq üçün unikal identifikator

Geniş yayılmış alg dəyərləri

alg dəyəriMənası
HS256SHA-256 ilə HMAC; bir ortaq sirr həm imzalayır, həm yoxlayır
RS256SHA-256 ilə RSA PKCS#1 v1.5 imzası; gizli açar imzalayır, açıq açar yoxlayır
PS256SHA-256 ilə RSA-PSS
ES256SHA-256 ilə P-256 əyrisində ECDSA; qısa imzalar
EdDSAEd25519 və ya Ed448 imzaları
noneİmzasız token; serverlər onu rədd etməlidir

JSON Web Token-in daxilində nə var

JWT RFC 7519 (may 2015) standartında müəyyən edilib və orada adın ingilis dilindəki "jot" sözü kimi tələffüz olunması tövsiyə edilir. Ən çox rast gəlinən imzalı forma nöqtələrlə birləşdirilmiş üç Base64url sətirdir: header.payload.signature. Header imza alqoritmini alg sahəsində göstərir, məsələn HS256 və ya RS256, çox vaxt isə kid sahəsində açar identifikatorunu da saxlayır. Payload claim-ləri, yəni JSON sahələrini daşıyır: sub (istifadəçi), iss (verən tərəf), aud (nəzərdə tutulan auditoriya), həmçinin exp, nbf və iat, bunlar isə 1 yanvar 1970 UTC-dən keçən saniyələrlə ifadə olunan vaxtlardır. Dekoder bu üç vaxtı yerli vaxtınıza və ISO 8601 formatına çevirir, tokenin vaxtının bitib-bitmədiyini, hələ qüvvəyə minməyib-minmədiyini və ya qüvvədə olduğunu bildirir.

Base64url şifrələmə deyil, kodlaşdırmadır, ona görə tokeni əldə edən hər kəs payload-u bu səhifənin göstərdiyi kimi oxuya bilər. Claim-lərə heç vaxt parol, kart nömrəsi və ya digər məxfi məlumat yazmayın. Nöqtələrlə ayrılmış beş hissədən ibarət token JWE, yəni şifrələnmiş tokendir; onun məzmununu açar olmadan oxumaq olmaz və dekoder bunu bildirir. Authorization başlığından kopyalanmış əvvəldəki "Bearer " avtomatik silinir.

İmza burada niyə yoxlanılmır

İmza header və payload-un açarı olan şəxs tərəfindən yaradıldığını və sonradan dəyişdirilmədiyini təsdiq edir. Onu yoxlamaq üçün həmin açar lazımdır: HS256 kimi HMAC alqoritmləri üçün ortaq gizli açar, RS256, ES256 və ya EdDSA üçün isə verən tərəfin açıq açarı. İstehsal mühitinin imza açarını hər hansı veb səhifəyə yapışdırmaq pis fikirdir, açarsız tokeni təsdiqləyirmiş kimi davranan dekoder isə yalançı arxayınlıq yaradar. Buna görə bu alət imzanı göstərir, amma yoxlamır. Gördüklərinizə fakt kimi yox, tokenin irəli sürdüyü iddia kimi yanaşın.

Yoxlama serverinizdə, gözlənilən alqoritm sabitlənmiş, aktual saxlanılan kitabxana ilə aparılmalıdır. Bunun səbəbini iki tarixi səhv izah edir: hər kəsə imzasız token saxtalaşdırmağa imkan verən alg "none" qəbul etmək və RS256 gözləyən serverin açıq açarı HMAC gizli açarı kimi istifadə edərək HS256 imzasını yoxlamağa aldadıldığı alqoritm qarışıqlığı. Dekoder xətaların aradan qaldırılması üçündür: provayderin hansı claim-lər verdiyini görmək, yanlış auditoriyanı tapmaq və ya sessiyanın exp vaxtı bir dəqiqə əvvəl bitdiyi üçün uğursuz olduğunu aşkar etmək. Base64url hissələrini xam şəkildə oxumaq üçün Base64 dekoderindən istifadə edin.

Tez-tez verilən suallar

Real giriş tokenini JWT dekoderə yapışdırmaq təhlükəsizdirmi?
Bu səhifədə token brauzerinizdən kənara çıxmır. Yenə də etibarlı token müddəti bitənə qədər parol kimi işləyir, ona görə müddəti bitmiş və ya test tokenlərə üstünlük verin, aktiv tokenləri ekran görüntülərindən və çatlardan kənarda saxlayın.
Token yenicə verildiyi halda niyə müddəti bitmiş kimi görünür?
Əvvəlcə cihazınızın saatını yoxlayın. Bəzi verənlər access tokenlərə cəmi bir neçə dəqiqəlik ömür verir, logdan kopyalanmış token isə göründüyündən köhnə ola bilər. Saniyə əvəzinə millisaniyə ilə yazılmış exp isə əksinə, minlərlə il irəliyə düşür.
Kimsə JWT-nin payload hissəsini dəyişə bilərmi?
Onlar tokeni redaktə edib yenidən kodlaya bilər, lakin imza artıq uyğun gəlməyəcək. İmzaları düzgün açar və alqoritmlə yoxlayan server dəyişdirilmiş tokeni rədd edir.
JWS ilə JWE arasında fərq nədir?
JWS (RFC 7515) imzalıdır, üç hissədən ibarətdir və onu hər kəs oxuya bilər. JWE (RFC 7516) şifrələnib, beş hissədən ibarətdir və payload-u yalnız açarın sahibi oxuya bilər.
Hesabdan çıxmaq JWT-ni etibarsız edirmi?
Tək başına yox. Server rədd siyahısı saxlamırsa və ya sessiya qeydini yoxlamırsa, imzalı JWT exp vaxtına qədər etibarlı qalır, buna görə access tokenlərə adətən qısa ömür verilir.