Skip to main content

Class: JWTService

Defined in: src/auth/jwt/jwt-service.ts:214

JWT service for token operations.

Remarks​

Provides secure JWT issuance and verification using ES256 algorithm. Supports token revocation via Redis blacklist.

Example​

const jwtService = new JWTService({
keyManager,
redis,
logger,
});

// Issue a token
const { token } = await jwtService.issueToken({
subject: 'did:plc:abc123',
sessionId: 'sess_xyz',
scopes: ['read', 'write'],
});

// Verify a token
const { claims } = await jwtService.verifyToken(token);

Constructors​

new JWTService()​

new JWTService(options): JWTService

Defined in: src/auth/jwt/jwt-service.ts:225

Creates a new JWTService.

Parameters​

options​

JWTServiceOptions

Service options

Returns​

JWTService

Methods​

getJWKS()​

getJWKS(): Promise<JSONWebKeySet>

Defined in: src/auth/jwt/jwt-service.ts:387

Gets the JWKS for public key distribution.

Returns​

Promise<JSONWebKeySet>

JWKS containing all valid public keys


issueToken()​

issueToken(options): Promise<IssuedToken>

Defined in: src/auth/jwt/jwt-service.ts:238

Issues a new access token.

Parameters​

options​

IssueTokenOptions

Token issuance options

Returns​

Promise<IssuedToken>

Issued token with metadata


isTokenRevoked()​

isTokenRevoked(jti): Promise<boolean>

Defined in: src/auth/jwt/jwt-service.ts:377

Checks if a token is revoked.

Parameters​

jti​

string

Token ID to check

Returns​

Promise<boolean>

True if token is revoked


revokeToken()​

revokeToken(jti, expiresAt): Promise<void>

Defined in: src/auth/jwt/jwt-service.ts:364

Revokes a token by its JTI.

Parameters​

jti​

string

Token ID to revoke

expiresAt​

Date

Token expiration (for TTL calculation)

Returns​

Promise<void>


verifyToken()​

verifyToken(token): Promise<VerifiedToken>

Defined in: src/auth/jwt/jwt-service.ts:284

Verifies a token and returns its claims.

Parameters​

token​

string

JWT string to verify

Returns​

Promise<VerifiedToken>

Verified token with claims

Throws​

TokenValidationError if token is invalid

Throws​

TokenExpiredError if token has expired