auto commit

master
李伟乐 11 months ago
parent 47eb8c3756
commit 231202713c
  1. 5
      middleware/jwt/jwt.go
  2. 17
      middleware/jwt/token.go
  3. 3
      middleware/validate/validate.go

@ -2,6 +2,7 @@ package jwt
import ( import (
"context" "context"
"git.diulo.com/mogfee/kit/errors"
"git.diulo.com/mogfee/kit/middleware" "git.diulo.com/mogfee/kit/middleware"
) )
@ -60,7 +61,7 @@ func JWT(opts ...JwtOption) middleware.Middleware {
// 解析token // 解析token
tokenStr := cfg.validate.GetToken(ctx, cfg.fromKey) tokenStr := cfg.validate.GetToken(ctx, cfg.fromKey)
if tokenStr == "" && needAuth { if tokenStr == "" && needAuth {
return nil, errorx.Unauthorized("NO_TOKEN", "") return nil, errors.Unauthorized("NO_TOKEN", "")
} }
if tokenStr != "" { if tokenStr != "" {
@ -70,7 +71,7 @@ func JWT(opts ...JwtOption) middleware.Middleware {
return err return err
} }
if needAuth && userInfo.UserId == "" { if needAuth && userInfo.UserId == "" {
return errorx.Unauthorized("TOKEN_BAD", "") return errors.Unauthorized("TOKEN_BAD", "")
} }
if authKey != "" { if authKey != "" {
if err = cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil { if err = cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil {

@ -2,6 +2,7 @@ package jwt
import ( import (
"encoding/json" "encoding/json"
"git.diulo.com/mogfee/kit/errors"
"git.diulo.com/mogfee/kit/internal/xuuid" "git.diulo.com/mogfee/kit/internal/xuuid"
"github.com/golang-jwt/jwt/v5" "github.com/golang-jwt/jwt/v5"
"time" "time"
@ -58,16 +59,16 @@ func Parse(key string, tokenStr string) (*UserInfo, error) {
} }
str, err := Decrypt(tokenStr, []byte(key), key) str, err := Decrypt(tokenStr, []byte(key), key)
if err != nil { if err != nil {
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) return nil, errors.Unauthorized("TOKEN_ERROR", err.Error())
} }
token, err := jwt.Parse(str, func(token *jwt.Token) (interface{}, error) { token, err := jwt.Parse(str, func(token *jwt.Token) (interface{}, error) {
return []byte(key), nil return []byte(key), nil
}) })
if err != nil { if err != nil {
if errorx.Is(err, jwt.ErrTokenExpired) { if errors.Is(err, jwt.ErrTokenExpired) {
return nil, errorx.Unauthorized("TOKEN_EXPIRED", "") return nil, errors.Unauthorized("TOKEN_EXPIRED", "")
} }
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) return nil, errors.Unauthorized("TOKEN_ERROR", err.Error())
} }
if token.Valid { if token.Valid {
@ -76,11 +77,11 @@ func Parse(key string, tokenStr string) (*UserInfo, error) {
}{} }{}
b, _ := json.Marshal(token.Claims) b, _ := json.Marshal(token.Claims)
if err = json.Unmarshal(b, &row); err != nil { if err = json.Unmarshal(b, &row); err != nil {
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) return nil, errors.Unauthorized("TOKEN_ERROR", err.Error())
} }
return row.Info, nil return row.Info, nil
} else if errorx.Is(err, jwt.ErrTokenExpired) || errorx.Is(err, jwt.ErrTokenNotValidYet) { } else if errors.Is(err, jwt.ErrTokenExpired) || errors.Is(err, jwt.ErrTokenNotValidYet) {
return nil, errorx.Unauthorized("TOKEN_EXPIRED", "") return nil, errors.Unauthorized("TOKEN_EXPIRED", "")
} }
return nil, errorx.Unauthorized("TOKEN_ERROR", "") return nil, errors.Unauthorized("TOKEN_ERROR", "")
} }

@ -2,6 +2,7 @@ package validate
import ( import (
"context" "context"
"git.diulo.com/mogfee/kit/errors"
"git.diulo.com/mogfee/kit/middleware" "git.diulo.com/mogfee/kit/middleware"
"strings" "strings"
) )
@ -18,7 +19,7 @@ func Server() middleware.Middleware {
Reason() string Reason() string
}); ok { }); ok {
field := a.Field() field := a.Field()
return nil, errorx.BadRequest("InvalidArgument", "").WithMetadata(map[string]string{ return nil, errors.BadRequest("InvalidArgument", "").WithMetadata(map[string]string{
strings.ToLower(field[0:1]) + field[1:]: a.Reason(), strings.ToLower(field[0:1]) + field[1:]: a.Reason(),
}) })
} }

Loading…
Cancel
Save