如何从jwt令牌中提取索赔 [英] How to extract the claims from jwt token
本文介绍了如何从jwt令牌中提取索赔的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用dgrijalva/jwt-go/软件包.
I'm using the dgrijalva/jwt-go/ package.
我想从令牌中提取有效载荷,但我找不到解决方法.
I would like to extract the payload from the token, and I couldn't find a way to do it.
示例(摘自: https://jwt.io/):
用于编码:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOixMjM0NTY3ODkwiiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95MEHJFHYHJFH
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
我想提取有效载荷:
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
我会很感激一个例子(使用golang).
I will be grateful for an example (using golang).
推荐答案
示例代码:
func extractClaims(tokenStr string) (jwt.MapClaims, bool) {
hmacSecretString := // Value
hmacSecret := []byte(hmacSecretString)
token, err := jwt.Parse(tokenStr, func(token *jwt.Token) (interface{}, error) {
// check token signing method etc
return hmacSecret, nil
})
if err != nil {
return nil, false
}
if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
return claims, true
} else {
log.Printf("Invalid JWT Token")
return nil, false
}
}
这篇关于如何从jwt令牌中提取索赔的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文