UNPKG

@gooin/garmin-connect

Version:

Makes it simple to interface with Garmin Connect to get or set any data point

65 lines (64 loc) 1.87 kB
import { MFAConfig } from '../garmin/types'; /** * MFA管理器,用于处理需要等待外部验证码的登录流程 * 支持文件系统和Redis两种存储方式 */ export declare class MFAManager { private static instance; private storage; private readonly DEFAULT_TIMEOUT; private constructor(); /** * 获取MFA管理器单例 */ static getInstance(config?: MFAConfig): MFAManager; /** * 重置单例实例,用于测试或重新配置 */ static resetInstance(): void; /** * 创建一个等待MFA验证码的Promise * @param sessionId 会话ID * @param timeout 超时时间(毫秒) * @returns Promise<string> 返回验证码 */ waitForMFACode(sessionId: string, timeout?: number): Promise<string>; /** * 提交MFA验证码 * @param sessionId 会话ID * @param code 验证码 * @returns 是否成功提交 */ submitMFACode(sessionId: string, code: string): Promise<boolean>; /** * 取消MFA验证 * @param sessionId 会话ID * @param reason 取消原因 * @returns 是否成功取消 */ cancelMFARequest(sessionId: string, reason?: string): Promise<boolean>; /** * 检查会话是否存在 * @param sessionId 会话ID * @returns 是否存在 */ hasSession(sessionId: string): Promise<boolean>; /** * 获取所有活跃的会话ID * @returns 会话ID列表 */ getActiveSessions(): Promise<string[]>; /** * 清理过期的请求 * @param maxAge 最大存活时间(毫秒) */ cleanupExpiredRequests(maxAge?: number): Promise<void>; /** * 定期清理过期请求 */ startCleanupTask(interval?: number): void; /** * 关闭资源连接(主要用于Redis) */ disconnect(): Promise<void>; }