Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahkod Token JWT dalam Go Menggunakan Perpustakaan jwt-go?

Bagaimana untuk Menyahkod Token JWT dalam Go Menggunakan Perpustakaan jwt-go?

Barbara Streisand
Lepaskan: 2024-12-18 19:00:17
asal
587 orang telah melayarinya

How to Decode JWT Tokens in Go Using the jwt-go Library?

Menyahkod Token JWT dalam Go Menggunakan jwt-go

Apabila bekerja dengan aplikasi Go, selalunya perlu untuk menyahkod JWT (JSON Web Token ) token untuk mengakses maklumat pengguna dan data lain yang berkaitan. Berikut ialah panduan komprehensif tentang cara mencapai ini dengan lancar menggunakan perpustakaan dgrijalva/jwt-go yang popular.

Langkah 1: Pasang Perpustakaan jwt-go

go get github.com/dgrijalva/jwt-go
Salin selepas log masuk

Langkah 2: Import Perpustakaan

import "github.com/dgrijalva/jwt-go"
Salin selepas log masuk

Langkah 3: Mulakan MapClaims

Pakej jwt-go membolehkan anda menyahkod token ke dalam struktur tuntutan tersuai. Untuk data mudah, anda boleh menggunakan jwt.MapClaims. Mulakan contoh MapClaims baharu.

claims := jwt.MapClaims{}
Salin selepas log masuk

Langkah 4: Parse Token

Gunakan fungsi jwt.ParseWithClaims untuk menghuraikan token JWT. Tentukan rentetan token dan jwt.MapClaims sebagai hujah kedua.

token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
    return []byte("YOUR_VERIFICATION_KEY"), nil
})
Salin selepas log masuk

Langkah 5: Pengendalian Ralat

Kendalikan sebarang ralat yang mungkin berlaku semasa penghuraian token.

if err != nil {
    // Handle error
}
Salin selepas log masuk

Langkah 6: Nyahkod Tuntutan

Tuntutan yang dihuraikan kini disimpan dalam pembolehubah tuntutan. Lelaran di atas peta untuk mengakses maklumat yang dinyahkod.

for key, val := range claims {
    fmt.Printf("Key: %v, value: %v\n", key, val)
}
Salin selepas log masuk

Contoh Lengkap:

package main

import (
    "encoding/json"
    "fmt"
    "log"

    "github.com/dgrijalva/jwt-go"
)

func main() {
    tokenString := "YOUR_JWT_TOKEN" // Replace this with your actual token
    key := []byte("YOUR_VERIFICATION_KEY")

    claims := jwt.MapClaims{}
    token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
        return key, nil
    })
    if err != nil {
        log.Fatal(err)
    }

    // Validate token signature
    if !token.Valid {
        log.Fatal("Invalid token signature")
    }

    // Decode claims
    var user map[string]interface{}
    json.Unmarshal([]byte(claims["user"].(string)), &user)

    fmt.Printf("User: %v\n", user["name"])
}
Salin selepas log masuk

Kod ini menganggap bahawa maklumat pengguna disimpan sebagai rentetan JSON dalam token JWT. Anda boleh mengubah suainya agar sepadan dengan struktur token khusus anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Token JWT dalam Go Menggunakan Perpustakaan jwt-go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan