package utils import ( jwtclaimenum "github.com/ardeman/project-legalgo-go/internal/enums/jwt" timeutils "github.com/ardeman/project-legalgo-go/internal/utilities/time_utils" "github.com/golang-jwt/jwt/v5" ) var jwtSecret = []byte("secret jwt key") // TODO: change later from env type ClaimOption func(options jwt.MapClaims) func GenerateToken(options ...ClaimOption) (string, error) { now := timeutils.Now() claims := jwt.MapClaims{ string(jwtclaimenum.ISSUED_AT): now.Unix(), } for _, o := range options { o(claims) } token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) return token.SignedString(jwtSecret) }