brunel/middleware/auth.go
2024-07-30 20:51:17 +01:00

31 lines
652 B
Go

package middleware
import (
"brunel/auth"
"strings"
"github.com/gofiber/fiber/v2"
)
func NewAuth() fiber.Handler {
return func(c *fiber.Ctx) error {
tokenPlusUsername := c.Cookies("pt")
if tokenPlusUsername == "" {
return c.Status(fiber.StatusUnauthorized).SendString("Unauthorized")
}
split := strings.Split(tokenPlusUsername, ":")
token := split[0]
username := split[1]
ok, suser := auth.CheckSessionToken(token)
if !ok {
return c.Status(fiber.StatusUnauthorized).SendString("Unauthorized")
}
if suser != username {
return c.Status(fiber.StatusUnauthorized).SendString("Unauthorized")
}
return c.Next()
}
}