package authService import ( "time" "github.com/golang-jwt/jwt/v4" ) func createToken(sub, secret, expiry string, payload interface{}) (*string, error) { duration, err := time.ParseDuration(expiry) if err != nil { return nil, err } token := jwt.New(jwt.SigningMethodHS256) claims := token.Claims.(jwt.MapClaims) claims["sub"] = sub claims["exp"] = time.Now().Add(duration).Unix() claims["data"] = payload signedToken, err := token.SignedString([]byte(secret)) if err != nil { return nil, err } return &signedToken, nil }