// lib/oauthStore.ts
// Простое хранилище для OAuth данных в памяти
// В production-среде лучше использовать Redis или другое хранилище

interface OAuthData {
    verifier: string;
    callbackUrl?: string;
}

interface OAuthStore {
    [key: string]: OAuthData;
}

const store: OAuthStore = {};

export const oauthStoreService = {
    set(state: string, verifier: string, callbackUrl?: string): void {
        store[state] = { verifier, callbackUrl };
        // Удаляем запись через 10 минут
        setTimeout(() => {
            delete store[state];
        }, 10 * 60 * 1000); // 10 минут
    },

    get(state: string): OAuthData | undefined {
        return store[state];
    },

    delete(state: string): void {
        delete store[state];
    }
};