我正在创建访问,刷新令牌逻辑,我想判断访问令牌是否有效(未编辑),即使它已过期.如果令牌过期,则GO返回错误并使令牌无效.因此,我判断给定的错误是否与ErrTokenExpired匹配.
我可以if !tkn.Valid{...
%确定如果令牌无效,则错误不会为零,所以我可以删除if !tkn.Valid{...
吗?
这通常是一种好的方法还是编辑过的令牌可以通过我的验证?
func VerifyJWT(jwtString, secret string) (*jwt.Token, *Claims, error) {
claims := &Claims{}
tkn, err := jwt.ParseWithClaims(jwtString, claims, func(token *jwt.Token) (interface{}, error) {
return []byte(os.Getenv(secret)), nil
})
return tkn, claims, err
}
_, accClaims, err1 := VerifyJWT(req.Access, "ACCESS_SECRET")
if err1 != nil && err1.Error()[:16] != jwt.ErrTokenExpired.Error()[:16] {
WriteJSON(w, http.StatusBadRequest, APIError{Error: "invalid token access" + err1.Error()})
return
}