Explorar el Código

middleware

- token parser
Alexey Kim hace 1 año
padre
commit
2d440d8480
Se han modificado 3 ficheros con 12 adiciones y 5 borrados
  1. 2 1
      go.mod
  2. 2 0
      go.sum
  3. 8 4
      middleware/jwt.go

+ 2 - 1
go.mod

@@ -4,7 +4,7 @@ go 1.20
 
 require (
 	github.com/gofrs/uuid v4.4.0+incompatible
-	github.com/golang-jwt/jwt/v5 v5.0.0
+	github.com/golang-jwt/jwt/v4 v4.5.0
 	github.com/labstack/echo-jwt/v4 v4.2.0
 	github.com/labstack/echo/v4 v4.11.1
 	github.com/urfave/cli/v2 v2.25.7
@@ -14,6 +14,7 @@ require (
 require (
 	github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
 	github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
+	github.com/golang-jwt/jwt/v5 v5.0.0 // indirect
 	github.com/labstack/gommon v0.4.0 // indirect
 	github.com/mattn/go-colorable v0.1.13 // indirect
 	github.com/mattn/go-isatty v0.0.19 // indirect

+ 2 - 0
go.sum

@@ -7,6 +7,8 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1
 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
 github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE=
 github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
 github.com/labstack/echo-jwt/v4 v4.2.0 h1:odSISV9JgcSCuhgQSV/6Io3i7nUmfM/QkBeR5GVJj5c=

+ 8 - 4
middleware/jwt.go

@@ -3,17 +3,21 @@ package middleware
 import (
 	"context"
 	"fmt"
-	"github.com/golang-jwt/jwt/v5"
+	"github.com/golang-jwt/jwt/v4"
 	echojwt "github.com/labstack/echo-jwt/v4"
 	"github.com/labstack/echo/v4"
 )
 
-func Jwt(secret []byte) echo.MiddlewareFunc {
+func Jwt(parser func(c echo.Context, auth string) (interface{}, error)) echo.MiddlewareFunc {
 	var (
 		sKeyJwtToken = fmt.Sprintf("%s", keyJwtToken)
 		cfg          = echojwt.Config{
-			ContextKey: sKeyJwtToken,
-			SigningKey: secret,
+			ContinueOnIgnoredError: true,
+			ErrorHandler: func(c echo.Context, err error) error {
+				return nil
+			},
+			ContextKey:     sKeyJwtToken,
+			ParseTokenFunc: parser,
 			SuccessHandler: func(ctx echo.Context) {
 				value := context.WithValue(ctx.Request().Context(), keyJwtToken, ctx.Get(sKeyJwtToken))
 				ctx.SetRequest(ctx.Request().WithContext(value))