init: initial repo

This commit is contained in:
ericprd
2025-02-22 12:50:26 +08:00
commit e57fa3ac6c
8 changed files with 146 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
package jwtclaimenum
type JWTClaim string
const (
TYPE JWTClaim = "type"
USERNAME JWTClaim = "username"
EXPIRED_AT JWTClaim = "exp"
SESSION_ID JWTClaim = "sid"
ISSUED_AT JWTClaim = "iat"
)
@@ -0,0 +1,7 @@
package timeutils
import "time"
func Now() time.Time {
return time.Now().UTC()
}
+27
View File
@@ -0,0 +1,27 @@
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)
}