24 lines
494 B
Go
Raw Normal View History

2023-03-22 22:45:17 +08:00
package router
import (
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
"github.com/gofiber/fiber/v2"
"github.com/rs/zerolog/log"
)
var userKey = struct{}{}
2023-03-22 22:45:17 +08:00
func JWTRequired(c *fiber.Ctx) error {
jwt := c.Get("Authorization")
if jwt == "" {
2023-03-22 22:54:14 +08:00
return fiber.ErrUnauthorized
2023-03-22 22:45:17 +08:00
}
claims, err := casdoorsdk.ParseJwtToken(jwt)
if err != nil {
log.Ctx(c.UserContext()).Error().Err(err).Msg("Unauthorized user")
2023-03-22 22:54:14 +08:00
return fiber.ErrUnauthorized
2023-03-22 22:45:17 +08:00
}
c.Locals(userKey, claims.User)
2023-03-22 22:45:17 +08:00
return nil
}