Files
soft_usite/rest/middlewares/login.go
T
2025-02-06 14:22:29 -05:00

45 lines
861 B
Go

package middlewares
import (
"github.com/gofiber/fiber/v2"
"github.com/gookit/validate"
"github.com/sujit-baniya/fiber-boilerplate/pkg/auth"
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
)
func RedirectToHomePageOnLogin(c *fiber.Ctx) error {
if auth.IsLoggedIn(c) {
return c.Redirect("/app/dashboard")
}
return c.Next()
}
func ValidateLoginPost(c *fiber.Ctx) error {
var login models.Login
if err := c.BodyParser(&login); err != nil {
return c.JSON(fiber.Map{
"status": "error",
"message": err.Error(),
})
}
v := validate.Struct(login)
if !v.Validate() {
return c.JSON(fiber.Map{
"status": "error",
"message": v.Errors.One(),
})
}
user, err := login.CheckLogin()
if err != nil {
return c.JSON(fiber.Map{
"status": "error",
"message": err.Error(),
})
}
c.Locals("user", user)
return c.Next()
}