@zestic/oauth-core
Version:
Framework-agnostic OAuth authentication library with support for multiple OAuth flows
53 lines • 1.49 kB
TypeScript
/**
* CSRF state validation for OAuth flows
*/
import { StorageAdapter } from '../types/OAuthTypes';
export declare class StateValidator {
private storageAdapter;
private stateTTL;
private static readonly STATE_STORAGE_KEY;
private static readonly STATE_EXPIRY_KEY;
private static readonly DEFAULT_STATE_TTL;
constructor(storageAdapter: StorageAdapter, stateTTL?: number);
/**
* Store state with expiry time
*/
storeState(state: string): Promise<void>;
/**
* Retrieve stored state
*/
getStoredState(): Promise<string | null>;
/**
* Check if stored state is expired
*/
isStateExpired(): Promise<boolean>;
/**
* Validate received state against stored state
*/
validateState(receivedState: string): Promise<boolean>;
/**
* Validate state and throw error if invalid
*/
validateStateOrThrow(receivedState: string): Promise<void>;
/**
* Clear stored state
*/
clearState(): Promise<void>;
/**
* Check if state exists in storage
*/
hasStoredState(): Promise<boolean>;
/**
* Get remaining TTL for stored state
*/
getStateRemainingTTL(): Promise<number>;
/**
* Extend state expiry time
*/
extendStateExpiry(additionalTime?: number): Promise<void>;
/**
* Cleanup expired state (can be called periodically)
*/
cleanupExpiredState(): Promise<void>;
}
//# sourceMappingURL=StateValidator.d.ts.map