Token
Secure JWE Token Utility for API Authorization
The Token class is a developer-facing utility designed to manage encrypted tokens using the JWE (JSON Web Encryption) standard.
It provides methods to:
Generate secure encrypted tokens.
Authorize incoming HTTP requests via
Bearertoken.Validate token expiration and structure.
Use a customizable secret key, expiration time, and encryption algorithm.
Internally, it uses node-jose and crypto to derive and manage the encryption key.
Constructor
new Token<Payload>(tokenPayload: TokenConstructor)I raccomand you to put those values in env files.
SECRET_KEY(string) – Secret used to derive the encryption key. If not provided, a fallback key is used.ExpTime(number) – Token expiration time in seconds.EncAlgorithm(string) – JWE encryption algorithm (e.g.'A256GCM','A128CBC-HS256').
Check node-jose official algorithms to chose wich one to use
KeyLength(number) – Length (in bytes) of the derived key (e.g.32for AES-256).
Methods
authorize(req: string | Request): Promise
You can pass directly the token or the full express request received in the apis)
Extracts the token from the
Authorizationheader (Bearer <token>) and verifies it.Use case: Middleware or route-level authorization in your API handlers.
Throws:
"UNAUTH"if no token is present.
"Token decryption failed"or"Token expired"on validation failure.
generateJWE(payload: Payload): Promise
Generates a JWE (encrypted JWT) token from the provided payload, with
iat(issued at) andexp(expiration) automatically injected.Returns: A compact JWE string, ready to be used as a
Bearertoken.Example:
verifyJWE(token: string): Promise
Decrypts and verifies a JWE token.
Validates expiration (
exp) timestamp.Throws on malformed or expired tokens.
Use case: Use internally when implementing custom token validation logic.
Example:
Notes
This utility supports encryption-only tokens, not signed JWTs.
It is stateless – tokens are self-contained and don't require database lookups.
Best suited for microservices or API-first architectures that require tamper-proof tokens.
Last updated