From 67f2e24c0a655e748e945814ba4d3e14cda2686b Mon Sep 17 00:00:00 2001 From: Twilight Date: Sun, 14 Jul 2024 22:16:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- consts/auth.go | 9 +++++---- internal/logic/auth.go | 24 +++++++++--------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/consts/auth.go b/consts/auth.go index f52b968..c634911 100644 --- a/consts/auth.go +++ b/consts/auth.go @@ -12,8 +12,9 @@ const ( ) var ( - ErrNotValidToken = errors.New("无效的 JWT 令牌。") - ErrJWTFormatError = errors.New("JWT 格式错误。") - ErrNotBearerType = errors.New("不是 Bearer 类型。") - ErrEmptyResponse = errors.New("我们的服务器返回了空请求,可能某些环节出了问题。") + ErrNotValidToken = errors.New("无效的 JWT 令牌") + ErrJWTFormatError = errors.New("JWT 格式错误") + ErrNotBearerType = errors.New("不是 Bearer 类型") + ErrEmptyResponse = errors.New("我们的服务器返回了空请求,可能某些环节出了问题") + ErrTokenError = errors.New("token 类型错误") ) diff --git a/internal/logic/auth.go b/internal/logic/auth.go index 451e222..0bb8c02 100644 --- a/internal/logic/auth.go +++ b/internal/logic/auth.go @@ -1,7 +1,6 @@ package logic import ( - "errors" "framework_v2/consts" "framework_v2/internal/providers" "framework_v2/internal/providers/jwks" @@ -16,13 +15,8 @@ type AuthLogic struct { } var ( - ErrNotValidToken = errors.New("无效的 JWT 令牌") - ErrJWTFormatError = errors.New("JWT 格式错误") - ErrNotBearerType = errors.New("不是 Bearer 类型") - ErrEmptyResponse = errors.New("我们的服务器返回了空请求,可能某些环节出了问题") - ErrTokenError = errors.New("token 类型错误") - config = *providers.MustGet[providers.GlobalConfig]() - logger = *providers.MustGet[zap.Logger]() + config = *providers.MustGet[providers.GlobalConfig]() + logger = *providers.MustGet[zap.Logger]() ) func NewAuthLogic() *AuthLogic { @@ -41,35 +35,35 @@ func (a *AuthLogic) GinMiddlewareAuth(tokenType models.JWTTokenTypes, c *gin.Con authorization := c.Request.Header.Get(consts.AuthHeader) if authorization == "" { - return nil, ErrJWTFormatError + return nil, consts.ErrJWTFormatError } authSplit := strings.Split(authorization, " ") if len(authSplit) != 2 { - return nil, ErrJWTFormatError + return nil, consts.ErrJWTFormatError } if authSplit[0] != consts.AuthPrefix { - return nil, ErrNotBearerType + return nil, consts.ErrNotBearerType } token, err := jwks.ParseJWT(authSplit[1]) if err != nil { - return nil, ErrNotValidToken + return nil, consts.ErrNotValidToken } sub, err = token.Claims.GetSubject() if err != nil { - return nil, ErrNotValidToken + return nil, consts.ErrNotValidToken } // 如果 token.Header 中没有 typ if token.Header["typ"] == "" { - return nil, ErrEmptyResponse + return nil, consts.ErrEmptyResponse } // 验证 token 类型 if tokenType != "" && tokenType.String() != token.Header["typ"] { - return nil, ErrTokenError + return nil, consts.ErrTokenError } jwtIdToken.Valid = true