Pag-decode at Pagsusuri ng JSON Web Token
Ang JSON Web Token (JWT) ay isang bukas na pamantayan (RFC 7519) na ginagamit para sa ligtas na pagpapadala ng impormasyon sa pagitan ng mga partido bilang isang JSON object. Ang tool na ito ay nagbibigay-daan sa pag-paste ng JWT sa isang text field upang agad na makita ang na-decode na header at payload nito. Ipinapakita nito ang mga pangunahing impormasyon mula sa token tulad ng algorithm, uri, oras ng pagkakagawa, at oras ng pag-expire. Ipinapakita rin nito ang katayuan ng validity ng token batay sa expiration claim nito.
Ang pagproseso ng inyong token ay ganap na nangyayari sa inyong browser. Walang inia-upload sa BroBroGo. Dahil dito, ang inyong data ay nananatili sa inyong lokal na makina habang sinusuri ang mga bahagi ng token.
Estruktura ng Isang JWT
Ang isang JWT ay binubuo ng tatlong magkakaibang bahagi na pinaghihiwalay ng mga tuldok (.). Ang bawat bahagi ay may partikular na tungkulin at naka-encode gamit ang Base64URL:
- Header: Naglalaman ng metadata tungkol sa token, kabilang ang uri ng token at ang algorithm na ginamit para sa pag-sign.
- Payload: Naglalaman ng mga claim o ang aktwal na data na ipinapasa, tulad ng impormasyon ng user at mga pribilehiyo.
- Signature: Ginagamit upang i-verify na ang nagpadala ng JWT ay kung sino talaga ito at upang matiyak na hindi nabago ang mensahe sa daan.
Ang tool na ito ay nakatutok sa pag-decode ng unang dalawang bahagi—ang Header at Payload—upang gawing madaling mabasa ang mga ito sa format na JSON.
Mga Input at Output ng Tool
Upang magamit ang decoder, i-paste lamang ang token sa nakalaang field. Narito ang mga teknikal na detalye ng mga input at output ng system:
Mga Kinakailangan sa Input
- JWT: Isang string na kumakatawan sa JSON Web Token.
- Dapat itong binubuo ng tatlong bahagi na pinaghihiwalay ng tuldok.
- Hindi ito dapat masyadong mahaba para sa isang totoong token.
Mga Output na Ipinapakita
Kapag nailagay ang valid na token, ipapakita ng tool ang mga sumusunod na detalye:
| Output | Paglalarawan |
|---|---|
| Header | Ang na-decode na header ng JWT na naka-format bilang JSON. |
| Payload | Ang na-decode na payload ng JWT na naka-format bilang JSON. |
| Algorithm | Ang algorithm na ginamit sa JWT (halimbawa, HS256 o RS256). |
| Uri | Ang uri ng token, karaniwang JWT. |
| Inilabas noong | Ang eksaktong oras kung kailan inilabas ang token. |
| Mag-e-expire | Ang takdang oras ng pag-expire ng token. |
| Status | Isang badge na nagpapakita ng validity: "Valid", "Expired", "Hindi pa valid", o "Walang expiry". |
| Mga Character | Ang kabuuang bilang ng mga character sa inilagay na JWT. |
Mga Panuntunan sa Pagpapatakbo at Paghawak ng Error
Ang decoder ay may mga built-in na panuntunan upang gabayan ang gumagamit kapag may hindi tugma sa format ng token:
- Walang Input: Kung walang laman ang field, ang tool ay mananatili sa katayuang "Handa na. Mag-paste ng JWT para i-decode ito.".
- Maling Format: Kung ang input ay hindi binubuo ng tatlong bahagi na may tuldok, ipapakita ang error na "Hindi valid na JWT — dapat may tatlong bahagi na pinaghiwalay ng tuldok.".
- Maling Base64URL sa Header: Kung hindi ma-decode ang unang bahagi, lalabas ang "Hindi ma-decode ang header — hindi valid na Base64URL.".
- Maling Base64URL sa Payload: Kung may problema sa pag-decode ng ikalawang bahagi, lalabas ang "Hindi ma-decode ang payload — hindi valid na Base64URL.".
- Hindi Valid na JSON: Kung ang na-decode na teksto ay hindi maayos ang pagkakabalangkas bilang JSON, ipapakita ang "Ang header ay hindi valid na JSON." o "Ang payload ay hindi valid na JSON.".
- Masyadong Mahaba: Kung lumampas sa limitasyon ang haba ng string, ipapakita ang "Masyadong mahaba para maging isang totoong JWT.".
Kapag may nakitang error o hindi valid ang token, awtomatikong itinatago ng tool ang mga decoded area upang maiwasan ang maling interpretasyon ng data. Kapag pinindot ang button para i-clear ang input, ang focus ay agad na babalik sa input field para sa susunod na pagsusuri.
Pag-decode vs. Pag-verify ng Signature
Mahalagang maunawaan ang pagkakaiba ng pag-decode (decoding) sa pag-verify (verifying) ng isang JWT:
- Pag-decode: Ito ay ang simpleng pagsasalin ng Base64URL string pabalik sa orihinal nitong JSON text. Kahit sino ay maaaring mag-decode ng isang JWT dahil ang Base64URL ay hindi isang paraan ng encryption kundi isang paraan lamang ng encoding. Ang tool na ito ay isang decoder lamang; hindi nito bini-verify ang signature ng JWT at hindi ito humihingi ng signing secret o public key.
- Pag-verify: Ito ay ang proseso ng pagtiyak na ang token ay hindi pinakialaman. Ginagawa ito sa pamamagitan ng paggamit ng secret key (para sa simetriko tulad ng HMAC) o public key (para sa asimetriko tulad ng RSA) upang kalkulahin muli ang signature at ihambing ito sa signature na kasama sa token. Ang hindi pag-verify sa signature sa mga produksyong kapaligiran ay may malubhang implikasyon sa seguridad, dahil maaaring baguhin ng isang umaatake ang payload (halimbawa, palitan ang user ID) at tanggapin pa rin ito ng system kung walang pag-verify.
Mga Madalas Itanong (FAQ)
Ligtas po bang i-paste ang aking JWT dito?
Opo. Ang pag-decode ay ganap na nangyayari sa inyong browser — ang inyong token ay hindi kailanman ipinapadala sa BroBroGo.
Bina-validate po ba nito ang signature?
Hindi po. Dine-decode lamang nito ang header at payload para mabasa ninyo. Ang pag-verify ng signature ay nangangailangan ng signing secret o public key, na hindi kailanman hinihingi ng tool na ito.
Paano ko po malalaman kung expired na ang aking token?
Binabasa ng decoder ang exp claim at nagpapakita ng status badge — valid, expired, hindi pa valid, o walang expiry — sa tabi ng na-decode na token.
Bakit ko nakukuha ang error na hindi valid na Base64URL?
Nangyayari ito kapag ang character set ng inyong na-paste na token ay may mga maling character o hindi sumusunod sa tamang padding at encoding standard ng Base64URL na ginagamit sa mga JWT.