package jwt import ( "fmt" "time" "github.com/golang-jwt/jwt" "github.com/rs/zerolog/log" ) // Encode a token func Encode(id int) (string, error) { // Get time now := time.Now() // Create claims claims := &Claims{ jwt.StandardClaims{ IssuedAt: now.Unix(), ExpiresAt: now.Add(time.Hour * 12).Unix(), }, id, } // Create token claims tokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) // Sign token with secret token, err := tokenClaims.SignedString(secret) if err != nil { log.Err(err).Str("id", fmt.Sprintf("%d", id)).Msg("Could not encode JWT claims") return "", err } return token, nil }