我正在使用“github.com/dgrijalva/jwt-go”,并且能够向我的前端发送令牌,以及我想知道如何检索从前端发送的令牌,以便我可以验证令牌是否发送的内容是有效的,如果是,则将交付受保护的资源。
这是从前端 JavaScript 发送的令牌:
headers: {
'Authorization':'Bearer' + localStorage.getItem('id_token')
}
这是发送令牌的代码
token := jwt.New(jwt.GetSigningMethod("HS256"))
claims := make(jwt.MapClaims)
claims["userName"] = loginRequest.UserName
claims["exp"] = time.Now().Add(time.Minute * 60).Unix()
token.Claims = claims
tokenString, err := token.SignedString([]byte(SecretKey))
tokenByte, err := json.Marshal(data)
w.WriteHeader(201)
w.Write(tokenByte)
这是验证令牌的代码
func VerifyToken(r *http.Request) bool {
reqToken := r.Header.Get("Authorization")
token, err := jwt.Parse(reqToken, func(t *jwt.Token) (interface{}, error) {
return []byte(SecretKey), nil
})
if err == nil && token.Valid {
fmt.Println("valid token")
return true
} else {
fmt.Println("invalid token")
return false
}
}
我得到nil令牌作为回报,我猜我已经发送了不记名,我认为如果是这样的话它可能需要解析?