identity-service/src/internal/server/login_handler.go

34 lines
770 B
Go

package server
import (
"git.pbiernat.io/egommerce/identity-service/internal/service"
"github.com/gofiber/fiber/v2"
)
type AuthLoginRequest struct {
Username string `json:"username"`
Password string `json:"password"`
}
type AuthLoginResponse struct {
JWTToken string `json:"jwt_token"`
}
func (s *Server) LoginHandler(c *fiber.Ctx) error {
data := new(AuthLoginRequest)
if err := c.BodyParser(data); err != nil {
return err
}
token, err := service.AuthService.Login(data.Username, data.Password)
if err != nil {
return fiber.NewError(fiber.StatusUnauthorized)
}
cookie := service.AuthService.Cookie("auth_token", token)
// ^^ FIXME move cookkie creation to separate service
c.Cookie(cookie)
return c.JSON(&AuthLoginResponse{JWTToken: token})
}