|
@@ -3,17 +3,21 @@ package middleware
|
|
import (
|
|
import (
|
|
"context"
|
|
"context"
|
|
"fmt"
|
|
"fmt"
|
|
- "github.com/golang-jwt/jwt/v5"
|
|
|
|
|
|
+ "github.com/golang-jwt/jwt/v4"
|
|
echojwt "github.com/labstack/echo-jwt/v4"
|
|
echojwt "github.com/labstack/echo-jwt/v4"
|
|
"github.com/labstack/echo/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 (
|
|
var (
|
|
sKeyJwtToken = fmt.Sprintf("%s", keyJwtToken)
|
|
sKeyJwtToken = fmt.Sprintf("%s", keyJwtToken)
|
|
cfg = echojwt.Config{
|
|
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) {
|
|
SuccessHandler: func(ctx echo.Context) {
|
|
value := context.WithValue(ctx.Request().Context(), keyJwtToken, ctx.Get(sKeyJwtToken))
|
|
value := context.WithValue(ctx.Request().Context(), keyJwtToken, ctx.Get(sKeyJwtToken))
|
|
ctx.SetRequest(ctx.Request().WithContext(value))
|
|
ctx.SetRequest(ctx.Request().WithContext(value))
|