Files
fm_be/internal/middleware/auth.go
2026-07-16 22:16:45 +07:00

26 lines
636 B
Go

package middleware
import (
"errors"
"github.com/gofiber/fiber/v2"
"gorm.io/gorm"
samlauth "wucher/internal/auth"
)
func RequireAuth(c *fiber.Ctx) error {
token := c.Cookies("session_token")
if token == "" {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "unauthorized"})
}
session, err := samlauth.GetSession(token)
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "unauthorized"})
}
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "unauthorized"})
}
c.Locals("user", session)
return c.Next()
}