export function generateCSRFToken(): string { const array = new Uint8Array(32); crypto.getRandomValues(array); return Array.from(array, (byte) => byte.toString(16).padStart(2, '0')).join(''); } export function validateCSRFToken(token: string, storedToken: string): boolean { if (!token || !storedToken) { return false; } return token === storedToken; } export function getCSRFTokenFromStorage(): string | null { if (typeof window === 'undefined') { return null; } return sessionStorage.getItem('csrf_token'); } export function setCSRFTokenToStorage(token: string): void { if (typeof window === 'undefined') { return; } sessionStorage.setItem('csrf_token', token); }