From c953b0496ef205ddda0defd70f376623bf13db61 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 28 Jul 2024 16:00:22 +0900 Subject: feat(backend): handle JWT validation manually --- backend/auth/jwt.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'backend/auth/jwt.go') diff --git a/backend/auth/jwt.go b/backend/auth/jwt.go index 1b153fe..c750531 100644 --- a/backend/auth/jwt.go +++ b/backend/auth/jwt.go @@ -1,11 +1,10 @@ package auth import ( + "errors" "time" "github.com/golang-jwt/jwt/v5" - echojwt "github.com/labstack/echo-jwt/v4" - "github.com/labstack/echo/v4" "github.com/nsfisis/iosdc-2024-albatross-backend/db" ) @@ -38,17 +37,16 @@ func NewJWT(user *db.User) (string, error) { return token.SignedString([]byte("TODO")) } -func NewJWTMiddleware() echo.MiddlewareFunc { - return echojwt.WithConfig(echojwt.Config{ - NewClaimsFunc: func(c echo.Context) jwt.Claims { - return new(JWTClaims) - }, - SigningKey: []byte("TODO"), +func ParseJWT(token string) (*JWTClaims, error) { + claims := new(JWTClaims) + t, err := jwt.ParseWithClaims(token, claims, func(t *jwt.Token) (interface{}, error) { + return []byte("TODO"), nil }) -} - -func GetJWTClaimsFromEchoContext(c echo.Context) *JWTClaims { - user := c.Get("user").(*jwt.Token) - claims := user.Claims.(*JWTClaims) - return claims + if err != nil { + return nil, err + } + if !t.Valid { + return nil, errors.New("invalid token") + } + return claims, nil } -- cgit v1.2.3-70-g09d2