weiro/handlers/middleware/user.go

29 lines
622 B
Go
Raw Normal View History

package middleware
import (
"github.com/gofiber/fiber/v3"
2026-02-25 11:04:47 +00:00
"github.com/gofiber/fiber/v3/middleware/session"
"lmika.dev/lmika/weiro/models"
2026-02-25 11:04:47 +00:00
"lmika.dev/lmika/weiro/services/auth"
)
2026-02-25 11:04:47 +00:00
func AuthUser(auth *auth.Service) func(c fiber.Ctx) error {
return func(c fiber.Ctx) error {
2026-02-25 11:04:47 +00:00
sess := session.FromContext(c)
userID, _ := sess.Get("user_id").(int64)
if userID == 0 {
return c.Redirect().To("/login")
}
user, err := auth.GetUser(c.Context(), userID)
if err != nil {
return c.Redirect().To("/login")
}
c.Locals("user", user)
c.SetContext(models.WithUser(c.Context(), user))
return c.Next()
}
}