Skip to main content

Auth Manager API Reference

The Auth Manager provides comprehensive authentication and authorization utilities for edge environments.

AuthManager

Main authentication management class.

Constructor

new AuthManager(options)
Parameters:
  • options (object): Authentication configuration options
Options:
  • jwtSecret (string): JWT secret key
  • jwtAlgorithm (string): JWT algorithm
  • apiKeys (array): Valid API keys
  • sessionTimeout (number): Session timeout
  • providers (array): Authentication providers

Methods

authenticate(request)

Authenticate a request.
const user = await auth.authenticate(request);
Parameters:
  • request (Request): HTTP request
Returns: Promise resolving to user object or null

generateToken(payload, options)

Generate JWT token.
const token = await auth.generateToken({ userId: '123', role: 'user' });
Parameters:
  • payload (object): Token payload
  • options (object, optional): Token options
Returns: Promise resolving to JWT token

verifyToken(token)

Verify JWT token.
const payload = await auth.verifyToken(token);
Parameters:
  • token (string): JWT token
Returns: Promise resolving to token payload

validateApiKey(key)

Validate API key.
const isValid = await auth.validateApiKey('api-key-123');
Parameters:
  • key (string): API key
Returns: Promise resolving to boolean

createSession(user, options)

Create user session.
const session = await auth.createSession(user, { ttl: 3600000 });
Parameters:
  • user (object): User object
  • options (object, optional): Session options
Returns: Promise resolving to session object

validateSession(sessionId)

Validate user session.
const session = await auth.validateSession('session-123');
Parameters:
  • sessionId (string): Session ID
Returns: Promise resolving to session object or null

Type Definitions

AuthOptions

interface AuthOptions {
  jwtSecret?: string;
  jwtAlgorithm?: string;
  apiKeys?: string[];
  sessionTimeout?: number;
  providers?: AuthProvider[];
}

User

interface User {
  id: string;
  email?: string;
  role?: string;
  permissions?: string[];
}

Session

interface Session {
  id: string;
  userId: string;
  expiresAt: number;
  data?: any;
}
I