Decode dan cetak token JWT

Lihat dengan cepat isi dari token jwt

Konten Halaman

Berikut adalah beberapa metode efektif untuk membaca dan mencetak token JWT secara langsung dari baris perintah:

pria dengan layar besar yang menampilkan hal-hal yang tidak dapat dipahami

1. Menggunakan jq

Alat jq dapat digunakan untuk membaca dan menampilkan token JWT secara rapi:

  • Perintah:

    echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

    Ini membagi token JWT menjadi komponen-komponennya (header dan payload), mendekode dari Base64, dan memformatnya sebagai JSON.

  • Contoh:

    echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \
      | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

2. Skrip Bash

Sebuah skrip Bash khusus dapat digunakan untuk membaca token JWT dengan menggunakan base64 dan jq:

  • Skrip:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Simpan skrip ini ke dalam sebuah file (misalnya, decode_jwt.sh), buat file tersebut dapat dieksekusi (chmod +x decode_jwt.sh), dan jalankan dengan token sebagai argumen.


3. Fungsi Zsh

Tambahkan fungsi berikut ke file .zshrc Anda untuk akses cepat:

  • Fungsi:
    function jwt() {
        for part in 1 2; do
            b64="$(cut -f$part -d. "
    

Ini mendekode header dan payload menggunakan OpenSSL dan memformatnya dengan json.tool dari Python.


4. Menggunakan jwt-cli

Pasang alat jwt-cli untuk membaca token JWT dengan mudah:

  • Instalasi:

    brew tap sgaunet/homebrew-tools
    brew install sgaunet/tools/jwt-cli
    
  • Perintah:

    jwt-cli decode 
    

Alat ini juga mendukung enkripsi dan penandatanganan token JWT[2].


5. One-liner Minimal dengan OpenSSL

Untuk solusi cepat tanpa alat tambahan:

  • Perintah:
    echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
    

Ini menggunakan awk untuk membagi token, base64 untuk mendekode, dan Python untuk memformat output.

Tautan yang Berguna