Files
2025-05-29 01:11:04 +07:00

28 lines
498 B
Go

package jwt
import (
"maps"
"time"
"github.com/golang-jwt/jwt"
)
func CreateJWT(
secretKey string,
data map[string]any,
ttl time.Duration,
) (string, error) {
claims := jwt.MapClaims{
"exp": time.Now().Add(ttl).Unix(),
"iat": time.Now().Unix(),
"nbf": time.Now().Unix(),
}
maps.Copy(claims, data)
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
signedToken, err := token.SignedString([]byte(secretKey))
if err != nil {
return "", nil
}
return signedToken, nil
}