JWTIssuer
Issues and validates HS256-signed JWTs for the OAuth proxy.Constructor
JWTIssuerConfig
required
Methods
issueAccessToken()
string
required
Client identifier
string[]
required
Token scopes
Record<string, unknown>
Custom claims to include in JWT
number
Override default TTL (seconds)
string
HS256-signed JWT access token
issueRefreshToken()
string
required
Client identifier
string[]
required
Token scopes
Record<string, unknown>
Custom claims to include in JWT
number
Override default TTL (seconds)
string
HS256-signed JWT refresh token
verify()
string
required
JWT token to verify
TokenValidationResult
deriveKey() (static)
Derive a signing key from a secret using PBKDF2.string
required
Secret to derive key from
number
default:"100000"
PBKDF2 iterations
string
Base64-encoded derived key
JWKSVerifier
Verifies JWTs using public keys from a JWKS endpoint.jose package: npm install jose
Constructor
JWKSVerifierConfig
required
Methods
verify()
string
required
JWT token to verify
TokenVerificationResult
refreshKeys()
Force refresh of JWKS cache.getJwksUri()
Get the JWKS URI being used.PKCEUtils
PKCE (Proof Key for Code Exchange) utilities for OAuth 2.0.Static Methods
generatePair()
Generate a complete PKCE pair (verifier + challenge).'S256' | 'plain'
default:"S256"
Challenge method
PKCEPair
generateVerifier()
Generate a cryptographically secure code verifier.number
default:"128"
Verifier length (43-128 characters)
string
Base64URL-encoded random string
generateChallenge()
Generate a code challenge from a verifier.string
required
Code verifier
'S256' | 'plain'
default:"S256"
Challenge method
string
Base64URL-encoded challenge (S256) or verifier (plain)
validateChallenge()
Validate a code verifier against a challenge.string
required
Code verifier to validate
string
required
Expected challenge
string
required
Challenge method used
boolean
Whether verifier matches challenge
ConsentManager
Manages consent screens and cookie signing for OAuth flows.Constructor
string
required
Secret key for signing consent cookies
Methods
createConsentResponse()
OAuthTransaction
required
OAuth transaction
string
required
Provider name for display
Response
HTTP response with consent HTML
signConsentCookie()
ConsentData
required
Consent data to sign
string
Signed cookie value
validateConsentCookie()
string
required
Signed cookie value
ConsentData | null
Validated consent data or null if invalid/expired
Token Storage
Token storage backends for OAuth tokens and mappings.MemoryTokenStorage
In-memory token storage with TTL support.Constructor
number
default:"60000"
Cleanup interval in milliseconds
Methods
(key: string, value: unknown, ttl?: number) => Promise<void>
Save value with optional TTL (seconds)
(key: string) => Promise<unknown | null>
Retrieve value (returns null if expired/not found)
(key: string) => Promise<void>
Delete value
() => Promise<void>
Remove expired entries
() => number
Get number of stored items
() => void
Clear storage and stop cleanup interval
EncryptedTokenStorage
Encrypted wrapper for token storage using AES-256-GCM.Constructor
TokenStorage
required
Underlying storage backend
string
required
Encryption key (derived using scrypt)
Methods
Same asTokenStorage interface - all values are automatically encrypted/decrypted.
DiscoveryDocumentCache
Caches OAuth discovery documents with TTL and request coalescing.Constructor
object
Methods
get()
Fetch discovery document (uses cache if available).string
required
Discovery document URL
Promise<unknown>
Discovery document as JSON object
- Returns cached value if valid
- Coalesces concurrent requests for same URL
- Auto-caches successful fetches
has()
Check if URL is cached and not expired.string
required
Discovery document URL
boolean
Whether document is cached and valid
clear()
Clear cache.string
Optional URL to clear (omit to clear all)
size
Get number of cached documents.number
Number of cached documents