github.com/paulwerner/bookkeeper@v0.1.0/router/middleware/auth.go (about) 1 package middleware 2 3 import ( 4 "os" 5 6 "github.com/gofiber/fiber/v2" 7 jwtware "github.com/gofiber/jwt/v2" 8 ) 9 10 // NewJWT creates a new JSON Web Token middleware 11 func NewJWT() fiber.Handler { 12 return jwtware.New( 13 jwtware.Config{ 14 SigningKey: []byte(os.Getenv("JWT_SECRET")), 15 ErrorHandler: func(c *fiber.Ctx, err error) error { 16 if err.Error() == "Missing or malformed JWT" { 17 return c.Status(fiber.StatusForbidden). 18 JSON(fiber.Map{ 19 "errors": fiber.Map{ 20 "msg": "missing or malformed JWT", 21 }, 22 }) 23 24 } else { 25 return c.Status(fiber.StatusUnauthorized). 26 JSON(fiber.Map{ 27 "errors": fiber.Map{ 28 "msg": "invalid or expired JWT", 29 }, 30 }) 31 } 32 }, 33 }, 34 ) 35 }