Kyoo/auth/session.go
2024-10-19 18:09:21 +02:00

40 lines
844 B
Go

package main
import (
"maps"
"net/http"
"time"
"github.com/golang-jwt/jwt/v5"
"github.com/labstack/echo/v4"
)
type LoginDto struct {
Login string `json:"login" validate:"required"`
Password string `json:"password" validate:"required"`
}
func (h *Handler) createToken(c echo.Context, user *User) error {
return nil
}
func (h *Handler) CreateJwt(c echo.Context, user *User) error {
claims := maps.Clone(user.Claims)
claims["sub"] = user.ID.String()
claims["iss"] = h.config.Issuer
claims["exp"] = &jwt.NumericDate{
Time: time.Now().UTC().Add(time.Hour),
}
claims["iss"] = &jwt.NumericDate{
Time: time.Now().UTC(),
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
t, err := token.SignedString(h.config.JwtSecret)
if err != nil {
return err
}
return c.JSON(http.StatusOK, echo.Map{
"token": t,
})
}