我正在使用golang中的jwt-go库,使用HS512算法对令牌进行签名。我想确保令牌是有效的,文档中的示例如下:
token, err := jwt.Parse(myToken, func(token *jwt.Token) (interface{}, error) {
return myLookupKey(token.Header["kid"])
})
if err == nil && token.Valid {
fmt.Println("Your token is valid. I like your style.")
} else {
fmt.Println("This token is terrible! I cannot accept this.")
}
我理解
myToken
是字符串令牌,keyFunc
被传递解析后的令牌,但我不明白myLookupKey
函数应该做什么?当我将token.Header
打印到控制台时,它没有kid
值,尽管令牌包含了我放入其中的所有数据,但token.Valid
始终为false。这是一个错误吗?如何验证令牌是否有效?