En langage Go, le token JWT est un mécanisme d'authentification courant. Pour obtenir la date d'expiration du jeton JWT, nous pouvons utiliser la bibliothèque tierce « github.com/dgrijalva/jwt-go » pour analyser la charge utile du jeton. Tout d'abord, nous devons analyser la chaîne de jeton dans un objet jwt.Token, puis nous pouvons obtenir la date d'expiration en accédant au champ Token.Claims["exp"]. La valeur de ce champ est un horodatage Unix, qui peut être converti en type d'heure à l'aide de la fonction time.Unix. De cette façon, nous pouvons facilement obtenir la date d'expiration du jeton JWT.
J'ai un jeton jwt et je peux voir le jeton décodé sur le site https://jwt.io/
. Cela ne m'oblige pas à définir des secrets ou des réclamations. Je cherche donc un moyen de décoder le token pour obtenir la date d'expiration sans fournir de secret.
J'utilise la bibliothèque ngopkg.in/square/go-jose.v2/jwt
et ci-dessous mon code :
token, err := jwt.ParseSigned(jwtToken)
Valeur de retour token
Il y a un champ d'en-tête qui inclut le keyid, l'algorithme mais il ne me donne pas la date d'expiration.
J'ai recherché ce sujet et les gens m'ont dit d'utiliser github.com/auth0/go-jwt-middleware/v2/validator
库,但它需要设置密钥/秘密。解析令牌的过期日期是否需要秘密。 网站https://jwt.io/
Comment connaître la date d'expiration ?
En utilisant l'exemple de jeton jwt de jwt.io, Ce code analyse et récupère les réclamations sans signatures vérifiées :
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) }
Dans cet exemple, le délai d'expiration doit apparaître sous la forme claims
映射中的字段之一。要检索它,请使用 exp, ok := claims["expire"]
(selon le nom exact).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!