editia-core
Version:
Core services and utilities for Editia applications - Authentication, Monetization, Video Generation Types, and Database Management
47 lines • 1.66 kB
TypeScript
/**
* Express Authentication Middleware
* Based on analysis of server-analyzer patterns
*/
import { Request, Response, NextFunction } from 'express';
import { DatabaseUser } from '../../types/auth';
declare global {
namespace Express {
interface Request {
user?: DatabaseUser;
}
}
}
/**
* Authentication middleware for Express
* Verifies Clerk JWT and ensures user exists in database
* @param req Express request object
* @param res Express response object
* @param next Express next function
*/
export declare function authenticateUser(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
* Pro subscription middleware - requires Pro/Premium tier
* For features that require Pro subscription
* @param req Express request object
* @param res Express response object
* @param next Express next function
*/
export declare function requireProAccess(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
* Optional authentication - for endpoints that work with or without auth
* @param req Express request object
* @param res Express response object
* @param next Express next function
*/
export declare function optionalAuth(req: Request, _res: Response, next: NextFunction): Promise<void>;
/**
* Create authentication middleware with custom options
* @param options Middleware options
* @returns Authentication middleware function
*/
export declare function createAuthMiddleware(options?: {
requireAuth?: boolean;
requirePro?: boolean;
optional?: boolean;
}): (_req: Request, _res: Response, next: NextFunction) => void;
//# sourceMappingURL=authenticate.d.ts.map