Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahkod Token JWT dalam Go Menggunakan Perpustakaan jwt-go?
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
Langkah 2: Import Perpustakaan
import "github.com/dgrijalva/jwt-go"
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{}
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 })
Langkah 5: Pengendalian Ralat
Kendalikan sebarang ralat yang mungkin berlaku semasa penghuraian token.
if err != nil { // Handle error }
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) }
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"]) }
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!