diff --git a/api/user.http.go b/api/user.http.go index 8d22c4a..ec4b198 100644 --- a/api/user.http.go +++ b/api/user.http.go @@ -1,11 +1,11 @@ package user import ( + "github.com/gin-gonic/gin" "context" "git.diulo.com/mogfee/kit/middleware" "git.diulo.com/mogfee/kit/errors" "git.diulo.com/mogfee/kit/response" - "github.com/gin-gonic/gin" ) func RegisterUserHandler(app *gin.Engine, srv UserServer, m ...middleware.Middleware) { diff --git a/api/user_http.pb.go b/api/user_http.pb.go index 573a2f7..434debc 100644 --- a/api/user_http.pb.go +++ b/api/user_http.pb.go @@ -1,9 +1,9 @@ package user import ( - "context" "git.diulo.com/mogfee/kit/transport/http" "git.diulo.com/mogfee/kit/middleware/jwt" + "context" ) type UserHTTPServer interface { diff --git a/middleware/jwt/jwt.go b/middleware/jwt/jwt.go index 907f8fa..df950f4 100644 --- a/middleware/jwt/jwt.go +++ b/middleware/jwt/jwt.go @@ -63,22 +63,23 @@ func JWT(opts ...JwtOption) middleware.Middleware { if tokenStr == "" && needAuth { return nil, errors.Unauthorized("NO_TOKEN", "") } - - userInfo, err := cfg.validate.ParseToken(ctx, cfg.jwtKey, tokenStr) - if err != nil { - return nil, err - } - if needAuth && userInfo.UserId == 0 { - return nil, errors.Unauthorized("TOKEN_BAD", "") - } - - if authKey != "" { - if err := cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil { + if tokenStr != "" { + userInfo, err := cfg.validate.ParseToken(ctx, cfg.jwtKey, tokenStr) + if err != nil { return nil, err } - } - if userInfo.UserId > 0 { - ctx = SetUserContext(ctx, userInfo) + if needAuth && userInfo.UserId == 0 { + return nil, errors.Unauthorized("TOKEN_BAD", "") + } + + if authKey != "" { + if err := cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil { + return nil, err + } + } + if userInfo.UserId > 0 { + ctx = SetUserContext(ctx, userInfo) + } } return handler(ctx, a) }