@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
TypeScript
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 };