Skip to content

Package Functions

New

go
func New(cfg Config) (*Processor, error)

Creates a new JWT Processor. Use DefaultConfig() to get default configuration, modify required fields, and pass it in.

Parameters

ParameterTypeDescription
cfgConfigConfiguration

Returns

ReturnTypeDescription
processor*ProcessorJWT processor
errerrorError when configuration validation fails

Example

go
package main

import (
    "fmt"

    "github.com/cybergodev/jwt"
)

func main() {
    cfg := jwt.DefaultConfig()
    cfg.SecretKey = "hmac-key-that-has-at-least-32-bytes!"

    processor, err := jwt.New(cfg)
    if err != nil {
        panic(err)
    }
    defer processor.Close()

    fmt.Println("Processor created successfully")
}

Errors

ErrorTrigger Condition
ErrInvalidConfigInvalid configuration
ErrInvalidSecretKeyKey missing, under 32 bytes, weak, wrong type, or ECDSA curve mismatch
ErrInvalidSigningMethodUnsupported signing algorithm

DefaultConfig

go
func DefaultConfig() Config

Returns a configuration with sensible defaults.

Returns

ReturnTypeDescription
configConfigDefault configuration

Defaults

FieldDefault
AccessTokenTTL15 * time.Minute
RefreshTokenTTL7 * 24 * time.Hour
Issuer"jwt-service"
SigningMethodSigningMethodHS256
RateLimitRate100
RateLimitWindowtime.Minute
BlacklistDefaultBlacklistConfig()

Example

go
cfg := jwt.DefaultConfig()
cfg.SecretKey = "hmac-key-that-has-at-least-32-bytes!"
// Modify other fields as needed

DefaultBlacklistConfig

go
func DefaultBlacklistConfig() BlacklistConfig

Returns a blacklist configuration with sensible defaults.

Returns

ReturnTypeDescription
configBlacklistConfigDefault blacklist configuration

Defaults

FieldDefault
CleanupInterval5 * time.Minute
MaxSize100000
EnableAutoCleanuptrue

NewNumericDate

go
func NewNumericDate(t time.Time) NumericDate

Creates a NumericDate from time.Time.

Parameters

ParameterTypeDescription
ttime.TimeTime value

Returns

ReturnTypeDescription
dateNumericDateJWT numeric date

NewRateLimiter

go
func NewRateLimiter(maxRate int, window time.Duration) *RateLimiter

Creates a token bucket rate limiter.

Parameters

ParameterTypeDescription
maxRateintMax requests per window (defaults to 100 when ≤0)
windowtime.DurationTime window (defaults to 1 minute when ≤0)

Returns

ReturnTypeDescription
limiter*RateLimiterRate limiter instance