@wristband/express-auth
Version:
SDK for integrating your ExpressJS application with Wristband. Handles user authentication, session management, and token management.
41 lines (40 loc) • 1.67 kB
TypeScript
import { Request, Response } from 'express';
/**
* Parses cookies from an Express request without relying on cookie-parser middleware
*
* Extracts and parses the Cookie header from the request, handling edge cases such as:
* - Missing Cookie header
* - Cookie values containing equals signs
* - URL encoded values
* - Whitespace around separators
*
* @param req - Express Request object
* @returns An object containing all cookies as key-value pairs
* @example
* // Returns { token: "abc123", session: "xyz789" }
* const cookies = parseCookies(req);
* const sessionId = cookies.session;
*/
export declare const parseCookies: (req: Request) => Record<string, string>;
/**
* Sets a cookie using direct header manipulation instead of cookie-parser middleware
*
* @param res - Express Response object
* @param name - Name of the cookie
* @param value - Value to store in the cookie (will be encoded)
* @param options - Cookie options
* @param options.maxAge - Cookie lifetime in milliseconds
* @param options.dangerouslyDisableSecureCookies - Whether to omit the Secure flag
*/
export declare function setCookie(res: Response, name: string, value: string, options?: {
maxAge?: number;
dangerouslyDisableSecureCookies?: boolean;
}): void;
/**
* Clears a cookie by setting its Max-Age to 0 and maintaining security properties
*
* @param res - Express Response object
* @param cookieName - Name of the cookie to clear
* @param dangerouslyDisableSecureCookies - Whether to omit the Secure flag (defaults to false)
*/
export declare function clearCookie(res: Response, cookieName: string, dangerouslyDisableSecureCookies?: boolean): void;