UNPKG

@re-auth/http-adapters

Version:

HTTP protocol adapters for ReAuth - framework-agnostic integration with Express, Fastify, and Hono

86 lines (83 loc) 3.13 kB
import { Request, Response, NextFunction, Router } from 'express'; import { FrameworkAdapter, HttpAdapterConfig, HttpRequest, AuthenticatedUser, MiddlewareFunction } from '../types.js'; import { ReAuthHttpAdapter } from '../base-adapter.js'; import { LoggerInterface } from '@re-auth/logger'; import '@re-auth/reauth'; import '@re-auth/reauth/services'; import 'hono/utils/cookie'; declare class ExpressAdapter implements FrameworkAdapter<Request, Response, NextFunction> { private exposeIntrospection; readonly name = "express"; private adapter; private generateDeviceInfo?; constructor(config: HttpAdapterConfig, exposeIntrospection: boolean, generateDeviceInfo?: (request: Request) => Promise<Record<string, any>>, logger?: LoggerInterface); /** * Generate device info from request */ generateDeviceInfoInternal(request: Request): Promise<Record<string, any>>; /** * Create Express middleware that populates req.user */ createUserMiddleware(): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Create Express middleware that adds adapter to request */ createMiddleware(): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Extract HTTP request from Express request */ extractRequest(req: Request): HttpRequest; /** * Send response using Express response object */ sendResponse(res: Response, data: any, statusCode?: number): void; /** * Handle error using Express response object */ handleError(res: Response, error: Error, statusCode?: number): void; /** * Create Express router with all ReAuth routes */ createRouter(router?: Router, basePath?: string): Router; /** * Create step execution handler */ private createStepHandler; /** * Create session check handler */ private createSessionCheckHandler; /** * Create plugin list handler */ private createPluginListHandler; /** * Create plugin details handler */ private createPluginDetailsHandler; /** * Create introspection handler */ private createIntrospectionHandler; /** * Create health check handler */ private createHealthHandler; /** * Get current user from Express request */ getCurrentUser(req: Request): Promise<AuthenticatedUser | null>; /** * Get the base adapter instance */ getAdapter(): ReAuthHttpAdapter; } /** * Factory function to create Express adapter */ declare function createExpressAdapter(config: HttpAdapterConfig, exposeIntrospection?: boolean, generateDeviceInfo?: (request: Request) => Promise<Record<string, any>>, logger?: LoggerInterface): ExpressAdapter; /** * Express middleware factory function */ declare function expressReAuth(config: HttpAdapterConfig, exposeIntrospection?: boolean, generateDeviceInfo?: (request: Request) => Promise<Record<string, any>>, logger?: LoggerInterface): MiddlewareFunction<Request, Response, NextFunction>; export { ExpressAdapter, createExpressAdapter, expressReAuth };