Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mendapatkan tarikh luput daripada token jwt in go?
Dalam bahasa Go, token JWT ialah mekanisme pengesahan biasa. Untuk mendapatkan tarikh tamat tempoh daripada token JWT, kami boleh menggunakan pustaka pihak ketiga "github.com/dgrijalva/jwt-go" untuk menghuraikan muatan token. Mula-mula, kita perlu menghuraikan rentetan token ke dalam objek jwt.Token, dan kemudian kita boleh mendapatkan tarikh tamat tempoh dengan mengakses medan Token.Claims["exp"]. Nilai medan ini ialah cap waktu Unix, yang boleh ditukar kepada jenis masa menggunakan fungsi masa.Unix. Dengan cara ini, kita boleh mendapatkan tarikh tamat tempoh token JWT dengan mudah.
Saya mempunyai token jwt dan saya boleh melihat token yang dinyahkod di laman web https://jwt.io/
. Ia tidak memerlukan saya untuk menetapkan sebarang rahsia atau tuntutan. Jadi saya sedang mencari cara untuk menyahkod token untuk mendapatkan tarikh luput tanpa memberikan sebarang rahsia.
Saya menggunakan perpustakaan ngopkg.in/square/go-jose.v2/jwt
dan di bawah ialah kod saya:
token, err := jwt.ParseSigned(jwtToken)
Nilai pulangan token
Terdapat medan pengepala yang merangkumi keyid, algoritma tetapi ia tidak memberi saya tarikh luput.
Saya mencari topik ini dan orang berkata untuk menggunakan github.com/auth0/go-jwt-middleware/v2/validator
库,但它需要设置密钥/秘密。解析令牌的过期日期是否需要秘密。 网站https://jwt.io/
Bagaimana untuk mengetahui tarikh luput?
Menggunakan contoh token jwt dari jwt.io, Kod ini menghuraikan dan mendapatkan semula tuntutan tanpa tandatangan yang disahkan:
func main() { raw := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" t, err := jwt.ParseSigned(raw) if err != nil { panic(err) } var claims map[string]any if err := t.UnsafeClaimsWithoutVerification(&claims); err != nil { panic(err) } fmt.Println(claims) }
Dalam contoh ini, masa tamat tempoh sepatutnya muncul sebagai claims
映射中的字段之一。要检索它,请使用 exp, ok := claims["expire"]
(bergantung pada nama sebenar).
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan tarikh luput daripada token jwt in go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!