@gooin/garmin-connect 1.7.3 → 1.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,59 @@
1
+ import { MFASessionStorage } from './MFASessionStorage';
2
+ /**
3
+ * 文件系统实现的MFA会话存储
4
+ */
5
+ export declare class FileMFASessionStorage implements MFASessionStorage {
6
+ private readonly storageDir;
7
+ private readonly DEFAULT_TIMEOUT;
8
+ constructor(storageDir: string);
9
+ /**
10
+ * 确保存储目录存在
11
+ */
12
+ private ensureStorageDir;
13
+ /**
14
+ * 获取会话文件路径
15
+ */
16
+ private getSessionFilePath;
17
+ /**
18
+ * 创建一个等待MFA验证码的Promise
19
+ * @param sessionId 会话ID
20
+ * @param timeout 超时时间(毫秒)
21
+ * @returns Promise<string> 返回验证码
22
+ */
23
+ waitForMFACode(sessionId: string, timeout?: number): Promise<string>;
24
+ /**
25
+ * 提交MFA验证码
26
+ * @param sessionId 会话ID
27
+ * @param code 验证码
28
+ * @returns 是否成功提交
29
+ */
30
+ submitMFACode(sessionId: string, code: string): Promise<boolean>;
31
+ /**
32
+ * 取消MFA验证
33
+ * @param sessionId 会话ID
34
+ * @param reason 取消原因
35
+ * @returns 是否成功取消
36
+ */
37
+ cancelMFARequest(sessionId: string, reason?: string): Promise<boolean>;
38
+ /**
39
+ * 检查会话是否存在
40
+ * @param sessionId 会话ID
41
+ * @returns 是否存在
42
+ */
43
+ hasSession(sessionId: string): Promise<boolean>;
44
+ /**
45
+ * 获取所有活跃的会话ID
46
+ * @returns 会话ID列表
47
+ */
48
+ getActiveSessions(): Promise<string[]>;
49
+ /**
50
+ * 清理过期的请求
51
+ * @param maxAge 最大存活时间(毫秒)
52
+ */
53
+ cleanupExpiredRequests(maxAge?: number): Promise<void>;
54
+ /**
55
+ * 清理指定会话的资源
56
+ * @param sessionId 会话ID
57
+ */
58
+ private cleanupRequest;
59
+ }
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileMFASessionStorage = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ /**
10
+ * 文件系统实现的MFA会话存储
11
+ */
12
+ class FileMFASessionStorage {
13
+ constructor(storageDir) {
14
+ this.DEFAULT_TIMEOUT = 5 * 60 * 1000; // 5分钟
15
+ this.storageDir = storageDir;
16
+ this.ensureStorageDir();
17
+ }
18
+ /**
19
+ * 确保存储目录存在
20
+ */
21
+ async ensureStorageDir() {
22
+ try {
23
+ await fs_1.promises.mkdir(this.storageDir, { recursive: true });
24
+ }
25
+ catch (error) {
26
+ console.error('创建MFA存储目录失败:', error);
27
+ }
28
+ }
29
+ /**
30
+ * 获取会话文件路径
31
+ */
32
+ getSessionFilePath(sessionId) {
33
+ return path_1.default.join(this.storageDir, `${sessionId}.json`);
34
+ }
35
+ /**
36
+ * 创建一个等待MFA验证码的Promise
37
+ * @param sessionId 会话ID
38
+ * @param timeout 超时时间(毫秒)
39
+ * @returns Promise<string> 返回验证码
40
+ */
41
+ async waitForMFACode(sessionId, timeout = this.DEFAULT_TIMEOUT) {
42
+ // 确保存储目录存在
43
+ await this.ensureStorageDir();
44
+ // 清理可能存在的旧会话
45
+ await this.cleanupRequest(sessionId);
46
+ // 创建会话文件
47
+ const sessionData = {
48
+ sessionId,
49
+ status: 'waiting',
50
+ createdAt: new Date().toISOString(),
51
+ timeout: timeout
52
+ };
53
+ const sessionFilePath = this.getSessionFilePath(sessionId);
54
+ await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(sessionData), 'utf8');
55
+ console.log(`MFA验证会话已创建: ${sessionId}`);
56
+ // 轮询检查验证码是否已提交
57
+ return new Promise((resolve, reject) => {
58
+ const startTime = Date.now();
59
+ const checkInterval = setInterval(async () => {
60
+ try {
61
+ // 检查是否超时
62
+ if (Date.now() - startTime > timeout) {
63
+ clearInterval(checkInterval);
64
+ await this.cleanupRequest(sessionId);
65
+ reject(new Error('MFA验证超时,请重新登录'));
66
+ return;
67
+ }
68
+ // 检查会话文件是否存在
69
+ try {
70
+ const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
71
+ const session = JSON.parse(data);
72
+ // 如果状态已更新为resolved,则返回验证码
73
+ if (session.status === 'resolved' && session.code) {
74
+ clearInterval(checkInterval);
75
+ await this.cleanupRequest(sessionId);
76
+ resolve(session.code);
77
+ return;
78
+ }
79
+ // 如果状态已更新为rejected,则抛出错误
80
+ if (session.status === 'rejected' && session.error) {
81
+ clearInterval(checkInterval);
82
+ await this.cleanupRequest(sessionId);
83
+ reject(new Error(session.error));
84
+ return;
85
+ }
86
+ }
87
+ catch (error) {
88
+ // 文件不存在或其他错误,继续等待
89
+ }
90
+ }
91
+ catch (error) {
92
+ clearInterval(checkInterval);
93
+ await this.cleanupRequest(sessionId);
94
+ reject(error instanceof Error
95
+ ? error
96
+ : new Error(String(error)));
97
+ }
98
+ }, 1000); // 每秒检查一次
99
+ });
100
+ }
101
+ /**
102
+ * 提交MFA验证码
103
+ * @param sessionId 会话ID
104
+ * @param code 验证码
105
+ * @returns 是否成功提交
106
+ */
107
+ async submitMFACode(sessionId, code) {
108
+ const sessionFilePath = this.getSessionFilePath(sessionId);
109
+ try {
110
+ // 检查会话文件是否存在
111
+ const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
112
+ const session = JSON.parse(data);
113
+ if (session.status !== 'waiting') {
114
+ console.log(`MFA验证会话状态不正确: ${sessionId}, 状态: ${session.status}`);
115
+ return false;
116
+ }
117
+ // 更新会话状态为已解决
118
+ session.status = 'resolved';
119
+ session.code = code;
120
+ session.resolvedAt = new Date().toISOString();
121
+ await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(session), 'utf8');
122
+ console.log(`MFA验证码已提交: code ${code}, sessionId ${sessionId}`);
123
+ return true;
124
+ }
125
+ catch (error) {
126
+ console.log(`未找到MFA验证会话: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
127
+ return false;
128
+ }
129
+ }
130
+ /**
131
+ * 取消MFA验证
132
+ * @param sessionId 会话ID
133
+ * @param reason 取消原因
134
+ * @returns 是否成功取消
135
+ */
136
+ async cancelMFARequest(sessionId, reason = 'MFA验证已取消') {
137
+ const sessionFilePath = this.getSessionFilePath(sessionId);
138
+ try {
139
+ // 检查会话文件是否存在
140
+ const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
141
+ const session = JSON.parse(data);
142
+ // 更新会话状态为已拒绝
143
+ session.status = 'rejected';
144
+ session.error = reason;
145
+ session.rejectedAt = new Date().toISOString();
146
+ await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(session), 'utf8');
147
+ console.log(`MFA验证已取消: ${sessionId}, 原因: ${reason}`);
148
+ return true;
149
+ }
150
+ catch (error) {
151
+ console.log(`未找到MFA验证会话: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
152
+ return false;
153
+ }
154
+ }
155
+ /**
156
+ * 检查会话是否存在
157
+ * @param sessionId 会话ID
158
+ * @returns 是否存在
159
+ */
160
+ async hasSession(sessionId) {
161
+ const sessionFilePath = this.getSessionFilePath(sessionId);
162
+ try {
163
+ await fs_1.promises.access(sessionFilePath);
164
+ return true;
165
+ }
166
+ catch (_a) {
167
+ return false;
168
+ }
169
+ }
170
+ /**
171
+ * 获取所有活跃的会话ID
172
+ * @returns 会话ID列表
173
+ */
174
+ async getActiveSessions() {
175
+ try {
176
+ await this.ensureStorageDir();
177
+ const files = await fs_1.promises.readdir(this.storageDir);
178
+ return files
179
+ .filter((file) => file.endsWith('.json'))
180
+ .map((file) => file.replace('.json', ''));
181
+ }
182
+ catch (error) {
183
+ console.error('获取活跃会话失败:', error instanceof Error ? error : String(error));
184
+ return [];
185
+ }
186
+ }
187
+ /**
188
+ * 清理过期的请求
189
+ * @param maxAge 最大存活时间(毫秒)
190
+ */
191
+ async cleanupExpiredRequests(maxAge = this.DEFAULT_TIMEOUT) {
192
+ try {
193
+ await this.ensureStorageDir();
194
+ const files = await fs_1.promises.readdir(this.storageDir);
195
+ const now = new Date();
196
+ let cleanedCount = 0;
197
+ for (const file of files) {
198
+ if (!file.endsWith('.json'))
199
+ continue;
200
+ try {
201
+ const filePath = path_1.default.join(this.storageDir, file);
202
+ const data = await fs_1.promises.readFile(filePath, 'utf8');
203
+ const session = JSON.parse(data);
204
+ const createdAt = new Date(session.createdAt);
205
+ // 检查是否过期
206
+ if (now.getTime() - createdAt.getTime() > maxAge) {
207
+ await fs_1.promises.unlink(filePath);
208
+ cleanedCount++;
209
+ }
210
+ }
211
+ catch (error) {
212
+ // 如果文件读取失败,直接删除
213
+ try {
214
+ await fs_1.promises.unlink(path_1.default.join(this.storageDir, file));
215
+ cleanedCount++;
216
+ }
217
+ catch (unlinkError) {
218
+ console.error(`删除过期会话文件失败: ${file}`, unlinkError instanceof Error
219
+ ? unlinkError
220
+ : String(unlinkError));
221
+ }
222
+ }
223
+ }
224
+ if (cleanedCount > 0) {
225
+ console.log(`清理了 ${cleanedCount} 个过期的MFA验证会话`);
226
+ }
227
+ }
228
+ catch (error) {
229
+ console.error('清理过期请求失败:', error instanceof Error ? error : String(error));
230
+ }
231
+ }
232
+ /**
233
+ * 清理指定会话的资源
234
+ * @param sessionId 会话ID
235
+ */
236
+ async cleanupRequest(sessionId) {
237
+ const sessionFilePath = this.getSessionFilePath(sessionId);
238
+ try {
239
+ await fs_1.promises.unlink(sessionFilePath);
240
+ }
241
+ catch (error) {
242
+ // 文件不存在,忽略错误
243
+ }
244
+ }
245
+ }
246
+ exports.FileMFASessionStorage = FileMFASessionStorage;
247
+ //# sourceMappingURL=FileMFASessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMFASessionStorage.js","sourceRoot":"","sources":["../../src/common/FileMFASessionStorage.ts"],"names":[],"mappings":"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"}
@@ -48,8 +48,12 @@ class HttpClient {
48
48
  jar: jar
49
49
  }));
50
50
  this.config = config;
51
- const mfaStorageDir = config.mfaStorageDir || '/tmp';
52
- this.mfaManager = MFAManager_1.MFAManager.getInstance(mfaStorageDir);
51
+ // 使用新的MFA配置初始化MFAManager
52
+ const mfaConfig = config.mfa || {
53
+ type: 'file',
54
+ dir: config.mfaStorageDir || '/tmp'
55
+ };
56
+ this.mfaManager = MFAManager_1.MFAManager.getInstance(mfaConfig);
53
57
  this.setupInterceptors();
54
58
  }
55
59
  /**
@@ -262,7 +266,7 @@ class HttpClient {
262
266
  // 如果提供了sessionId,则使用分步登录模式
263
267
  if (sessionId) {
264
268
  // 等待外部提供验证码
265
- const mfaCode = await MFAManager_1.MFAManager.getInstance().waitForMFACode(sessionId);
269
+ const mfaCode = await this.mfaManager.waitForMFACode(sessionId);
266
270
  // 使用获取到的验证码完成MFA验证
267
271
  signinResult = await this.handleMFAWithCode(signinResult, loginParams.step3Params, mfaCode);
268
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/common/HttpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/common/HttpClient.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,21 @@
1
+ import { MFAConfig } from '../garmin/types';
1
2
  /**
2
3
  * MFA管理器,用于处理需要等待外部验证码的登录流程
3
- * 使用文件系统持久化存储,支持跨进程共享状态
4
+ * 支持文件系统和Redis两种存储方式
4
5
  */
5
6
  export declare class MFAManager {
6
7
  private static instance;
7
- readonly storageDir: string;
8
+ private storage;
8
9
  private readonly DEFAULT_TIMEOUT;
9
10
  private constructor();
10
11
  /**
11
12
  * 获取MFA管理器单例
12
13
  */
13
- static getInstance(storageDir?: string): MFAManager;
14
+ static getInstance(config?: MFAConfig): MFAManager;
14
15
  /**
15
- * 确保存储目录存在
16
+ * 重置单例实例,用于测试或重新配置
16
17
  */
17
- private ensureStorageDir;
18
- /**
19
- * 获取会话文件路径
20
- */
21
- private getSessionFilePath;
18
+ static resetInstance(): void;
22
19
  /**
23
20
  * 创建一个等待MFA验证码的Promise
24
21
  * @param sessionId 会话ID
@@ -56,13 +53,12 @@ export declare class MFAManager {
56
53
  * @param maxAge 最大存活时间(毫秒)
57
54
  */
58
55
  cleanupExpiredRequests(maxAge?: number): Promise<void>;
59
- /**
60
- * 清理指定会话的资源
61
- * @param sessionId 会话ID
62
- */
63
- private cleanupRequest;
64
56
  /**
65
57
  * 定期清理过期请求
66
58
  */
67
59
  startCleanupTask(interval?: number): void;
60
+ /**
61
+ * 关闭资源连接(主要用于Redis)
62
+ */
63
+ disconnect(): Promise<void>;
68
64
  }
@@ -4,47 +4,57 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MFAManager = void 0;
7
- const fs_1 = require("fs");
7
+ const FileMFASessionStorage_1 = require("./FileMFASessionStorage");
8
+ const RedisMFASessionStorage_1 = require("./RedisMFASessionStorage");
8
9
  const path_1 = __importDefault(require("path"));
9
10
  /**
10
11
  * MFA管理器,用于处理需要等待外部验证码的登录流程
11
- * 使用文件系统持久化存储,支持跨进程共享状态
12
+ * 支持文件系统和Redis两种存储方式
12
13
  */
13
14
  class MFAManager {
14
- constructor(storageDir) {
15
+ constructor(config) {
15
16
  this.DEFAULT_TIMEOUT = 5 * 60 * 1000; // 5分钟
16
- // 使用提供的目录或默认临时目录
17
- this.storageDir =
18
- storageDir || path_1.default.join(process.cwd(), '.mfa-sessions');
19
- this.ensureStorageDir();
17
+ // 根据配置创建不同的存储实现
18
+ if (config.type === 'redis') {
19
+ if (config.redis) {
20
+ this.storage = new RedisMFASessionStorage_1.RedisMFASessionStorage(undefined, undefined, config.redis);
21
+ }
22
+ else if (config.redisUrl && config.redisToken) {
23
+ this.storage = new RedisMFASessionStorage_1.RedisMFASessionStorage(config.redisUrl, config.redisToken);
24
+ }
25
+ else if (config.redisUrl) {
26
+ this.storage = new RedisMFASessionStorage_1.RedisMFASessionStorage(config.redisUrl);
27
+ }
28
+ else {
29
+ throw new Error('Redis配置不完整,需要提供redisUrl或redis实例');
30
+ }
31
+ }
32
+ else if (config.type === 'file') {
33
+ const storageDir = config.dir || path_1.default.join(process.cwd(), '.mfa-sessions');
34
+ this.storage = new FileMFASessionStorage_1.FileMFASessionStorage(storageDir);
35
+ }
36
+ else {
37
+ throw new Error(`不支持的MFA存储类型: ${config.type}`);
38
+ }
20
39
  }
21
40
  /**
22
41
  * 获取MFA管理器单例
23
42
  */
24
- static getInstance(storageDir) {
43
+ static getInstance(config) {
25
44
  if (!MFAManager.instance) {
26
- console.log('创建MFA管理器实例', storageDir);
27
- MFAManager.instance = new MFAManager(storageDir);
45
+ if (!config) {
46
+ throw new Error('首次创建MFAManager实例必须提供配置');
47
+ }
48
+ console.log('创建MFA管理器实例', config);
49
+ MFAManager.instance = new MFAManager(config);
28
50
  }
29
- console.log('返回MFA管理器实例', MFAManager.instance.storageDir);
30
51
  return MFAManager.instance;
31
52
  }
32
53
  /**
33
- * 确保存储目录存在
34
- */
35
- async ensureStorageDir() {
36
- try {
37
- await fs_1.promises.mkdir(this.storageDir, { recursive: true });
38
- }
39
- catch (error) {
40
- console.error('创建MFA存储目录失败:', error);
41
- }
42
- }
43
- /**
44
- * 获取会话文件路径
54
+ * 重置单例实例,用于测试或重新配置
45
55
  */
46
- getSessionFilePath(sessionId) {
47
- return path_1.default.join(this.storageDir, `${sessionId}.json`);
56
+ static resetInstance() {
57
+ MFAManager.instance = undefined;
48
58
  }
49
59
  /**
50
60
  * 创建一个等待MFA验证码的Promise
@@ -53,64 +63,7 @@ class MFAManager {
53
63
  * @returns Promise<string> 返回验证码
54
64
  */
55
65
  async waitForMFACode(sessionId, timeout = this.DEFAULT_TIMEOUT) {
56
- // 确保存储目录存在
57
- await this.ensureStorageDir();
58
- // 清理可能存在的旧会话
59
- await this.cleanupRequest(sessionId);
60
- // 创建会话文件
61
- const sessionData = {
62
- sessionId,
63
- status: 'waiting',
64
- createdAt: new Date().toISOString(),
65
- timeout: timeout
66
- };
67
- const sessionFilePath = this.getSessionFilePath(sessionId);
68
- await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(sessionData), 'utf8');
69
- console.log(`MFA验证会话已创建: ${sessionId}`);
70
- // 轮询检查验证码是否已提交
71
- return new Promise((resolve, reject) => {
72
- const startTime = Date.now();
73
- const checkInterval = setInterval(async () => {
74
- try {
75
- // 检查是否超时
76
- if (Date.now() - startTime > timeout) {
77
- clearInterval(checkInterval);
78
- await this.cleanupRequest(sessionId);
79
- reject(new Error('MFA验证超时,请重新登录'));
80
- return;
81
- }
82
- // 检查会话文件是否存在
83
- try {
84
- const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
85
- const session = JSON.parse(data);
86
- // 如果状态已更新为resolved,则返回验证码
87
- if (session.status === 'resolved' && session.code) {
88
- clearInterval(checkInterval);
89
- await this.cleanupRequest(sessionId);
90
- resolve(session.code);
91
- return;
92
- }
93
- // 如果状态已更新为rejected,则抛出错误
94
- if (session.status === 'rejected' && session.error) {
95
- clearInterval(checkInterval);
96
- await this.cleanupRequest(sessionId);
97
- reject(new Error(session.error));
98
- return;
99
- }
100
- }
101
- catch (error) {
102
- // 文件不存在或其他错误,继续等待
103
- }
104
- }
105
- catch (error) {
106
- clearInterval(checkInterval);
107
- await this.cleanupRequest(sessionId);
108
- reject(error instanceof Error
109
- ? error
110
- : new Error(String(error)));
111
- }
112
- }, 1000); // 每秒检查一次
113
- });
66
+ return this.storage.waitForMFACode(sessionId, timeout);
114
67
  }
115
68
  /**
116
69
  * 提交MFA验证码
@@ -119,27 +72,7 @@ class MFAManager {
119
72
  * @returns 是否成功提交
120
73
  */
121
74
  async submitMFACode(sessionId, code) {
122
- const sessionFilePath = this.getSessionFilePath(sessionId);
123
- try {
124
- // 检查会话文件是否存在
125
- const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
126
- const session = JSON.parse(data);
127
- if (session.status !== 'waiting') {
128
- console.log(`MFA验证会话状态不正确: ${sessionId}, 状态: ${session.status}`);
129
- return false;
130
- }
131
- // 更新会话状态为已解决
132
- session.status = 'resolved';
133
- session.code = code;
134
- session.resolvedAt = new Date().toISOString();
135
- await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(session), 'utf8');
136
- console.log(`MFA验证码已提交: code ${code}, sessionId ${sessionId}`);
137
- return true;
138
- }
139
- catch (error) {
140
- console.log(`未找到MFA验证会话: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
141
- return false;
142
- }
75
+ return this.storage.submitMFACode(sessionId, code);
143
76
  }
144
77
  /**
145
78
  * 取消MFA验证
@@ -148,23 +81,7 @@ class MFAManager {
148
81
  * @returns 是否成功取消
149
82
  */
150
83
  async cancelMFARequest(sessionId, reason = 'MFA验证已取消') {
151
- const sessionFilePath = this.getSessionFilePath(sessionId);
152
- try {
153
- // 检查会话文件是否存在
154
- const data = await fs_1.promises.readFile(sessionFilePath, 'utf8');
155
- const session = JSON.parse(data);
156
- // 更新会话状态为已拒绝
157
- session.status = 'rejected';
158
- session.error = reason;
159
- session.rejectedAt = new Date().toISOString();
160
- await fs_1.promises.writeFile(sessionFilePath, JSON.stringify(session), 'utf8');
161
- console.log(`MFA验证已取消: ${sessionId}, 原因: ${reason}`);
162
- return true;
163
- }
164
- catch (error) {
165
- console.log(`未找到MFA验证会话: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
166
- return false;
167
- }
84
+ return this.storage.cancelMFARequest(sessionId, reason);
168
85
  }
169
86
  /**
170
87
  * 检查会话是否存在
@@ -172,89 +89,21 @@ class MFAManager {
172
89
  * @returns 是否存在
173
90
  */
174
91
  async hasSession(sessionId) {
175
- const sessionFilePath = this.getSessionFilePath(sessionId);
176
- try {
177
- await fs_1.promises.access(sessionFilePath);
178
- return true;
179
- }
180
- catch (_a) {
181
- return false;
182
- }
92
+ return this.storage.hasSession(sessionId);
183
93
  }
184
94
  /**
185
95
  * 获取所有活跃的会话ID
186
96
  * @returns 会话ID列表
187
97
  */
188
98
  async getActiveSessions() {
189
- try {
190
- await this.ensureStorageDir();
191
- const files = await fs_1.promises.readdir(this.storageDir);
192
- return files
193
- .filter((file) => file.endsWith('.json'))
194
- .map((file) => file.replace('.json', ''));
195
- }
196
- catch (error) {
197
- console.error('获取活跃会话失败:', error instanceof Error ? error : String(error));
198
- return [];
199
- }
99
+ return this.storage.getActiveSessions();
200
100
  }
201
101
  /**
202
102
  * 清理过期的请求
203
103
  * @param maxAge 最大存活时间(毫秒)
204
104
  */
205
105
  async cleanupExpiredRequests(maxAge = this.DEFAULT_TIMEOUT) {
206
- try {
207
- await this.ensureStorageDir();
208
- const files = await fs_1.promises.readdir(this.storageDir);
209
- const now = new Date();
210
- let cleanedCount = 0;
211
- for (const file of files) {
212
- if (!file.endsWith('.json'))
213
- continue;
214
- try {
215
- const filePath = path_1.default.join(this.storageDir, file);
216
- const data = await fs_1.promises.readFile(filePath, 'utf8');
217
- const session = JSON.parse(data);
218
- const createdAt = new Date(session.createdAt);
219
- // 检查是否过期
220
- if (now.getTime() - createdAt.getTime() > maxAge) {
221
- await fs_1.promises.unlink(filePath);
222
- cleanedCount++;
223
- }
224
- }
225
- catch (error) {
226
- // 如果文件读取失败,直接删除
227
- try {
228
- await fs_1.promises.unlink(path_1.default.join(this.storageDir, file));
229
- cleanedCount++;
230
- }
231
- catch (unlinkError) {
232
- console.error(`删除过期会话文件失败: ${file}`, unlinkError instanceof Error
233
- ? unlinkError
234
- : String(unlinkError));
235
- }
236
- }
237
- }
238
- if (cleanedCount > 0) {
239
- console.log(`清理了 ${cleanedCount} 个过期的MFA验证会话`);
240
- }
241
- }
242
- catch (error) {
243
- console.error('清理过期请求失败:', error instanceof Error ? error : String(error));
244
- }
245
- }
246
- /**
247
- * 清理指定会话的资源
248
- * @param sessionId 会话ID
249
- */
250
- async cleanupRequest(sessionId) {
251
- const sessionFilePath = this.getSessionFilePath(sessionId);
252
- try {
253
- await fs_1.promises.unlink(sessionFilePath);
254
- }
255
- catch (error) {
256
- // 文件不存在,忽略错误
257
- }
106
+ return this.storage.cleanupExpiredRequests(maxAge);
258
107
  }
259
108
  /**
260
109
  * 定期清理过期请求
@@ -264,6 +113,14 @@ class MFAManager {
264
113
  this.cleanupExpiredRequests();
265
114
  }, interval);
266
115
  }
116
+ /**
117
+ * 关闭资源连接(主要用于Redis)
118
+ */
119
+ async disconnect() {
120
+ if (this.storage instanceof RedisMFASessionStorage_1.RedisMFASessionStorage) {
121
+ await this.storage.disconnect();
122
+ }
123
+ }
267
124
  }
268
125
  exports.MFAManager = MFAManager;
269
126
  //# sourceMappingURL=MFAManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MFAManager.js","sourceRoot":"","sources":["../../src/common/MFAManager.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,gDAAwB;AAExB;;;GAGG;AACH,MAAa,UAAU;IAKnB,YAAoB,UAAmB;QAFtB,oBAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM;QAGpD,iBAAiB;QACjB,IAAI,CAAC,UAAU;YACX,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACtC,UAAU,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;SACpD;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC1B,IAAI;YACA,MAAM,aAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACxD;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;SACxC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAiB;QACxC,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CACvB,SAAiB,EACjB,UAAkB,IAAI,CAAC,eAAe;QAEtC,WAAW;QACX,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,aAAa;QACb,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAErC,SAAS;QACT,MAAM,WAAW,GAAG;YAChB,SAAS;YACT,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,OAAO;SACnB,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,aAAE,CAAC,SAAS,CACd,eAAe,EACf,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAC3B,MAAM,CACT,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;QAExC,eAAe;QACf,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBACzC,IAAI;oBACA,SAAS;oBACT,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE;wBAClC,aAAa,CAAC,aAAa,CAAC,CAAC;wBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;wBACnC,OAAO;qBACV;oBAED,aAAa;oBACb,IAAI;wBACA,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;wBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAEjC,0BAA0B;wBAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE;4BAC/C,aAAa,CAAC,aAAa,CAAC,CAAC;4BAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;4BACrC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACtB,OAAO;yBACV;wBAED,yBAAyB;wBACzB,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE;4BAChD,aAAa,CAAC,aAAa,CAAC,CAAC;4BAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;4BACrC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;4BACjC,OAAO;yBACV;qBACJ;oBAAC,OAAO,KAAK,EAAE;wBACZ,kBAAkB;qBACrB;iBACJ;gBAAC,OAAO,KAAK,EAAE;oBACZ,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;oBACrC,MAAM,CACF,KAAK,YAAY,KAAK;wBAClB,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACjC,CAAC;iBACL;YACL,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CACtB,SAAiB,EACjB,IAAY;QAEZ,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI;YACA,aAAa;YACb,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC9B,OAAO,CAAC,GAAG,CACP,iBAAiB,SAAS,SAAS,OAAO,CAAC,MAAM,EAAE,CACtD,CAAC;gBACF,OAAO,KAAK,CAAC;aAChB;YAED,aAAa;YACb,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YAC5B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,aAAE,CAAC,SAAS,CACd,eAAe,EACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,MAAM,CACT,CAAC;YACF,OAAO,CAAC,GAAG,CACP,mBAAmB,IAAI,eAAe,SAAS,EAAE,CACpD,CAAC;YACF,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,GAAG,CACP,eAAe,SAAS,SACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACzD,EAAE,CACL,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,gBAAgB,CACzB,SAAiB,EACjB,SAAiB,UAAU;QAE3B,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI;YACA,aAAa;YACb,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjC,aAAa;YACb,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YAC5B,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;YACvB,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,aAAE,CAAC,SAAS,CACd,eAAe,EACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,MAAM,CACT,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,SAAS,MAAM,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,GAAG,CACP,eAAe,SAAS,SACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACzD,EAAE,CACL,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,SAAiB;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI;YACA,MAAM,aAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;SACf;QAAC,WAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,iBAAiB;QAC1B,IAAI;YACA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,OAAO,KAAK;iBACP,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CACT,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD,CAAC;YACF,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAC/B,SAAiB,IAAI,CAAC,eAAe;QAErC,IAAI;YACA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAEtC,IAAI;oBACA,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBAClD,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAE9C,SAAS;oBACT,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;wBAC9C,MAAM,aAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC1B,YAAY,EAAE,CAAC;qBAClB;iBACJ;gBAAC,OAAO,KAAK,EAAE;oBACZ,gBAAgB;oBAChB,IAAI;wBACA,MAAM,aAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;wBAClD,YAAY,EAAE,CAAC;qBAClB;oBAAC,OAAO,WAAW,EAAE;wBAClB,OAAO,CAAC,KAAK,CACT,eAAe,IAAI,EAAE,EACrB,WAAW,YAAY,KAAK;4BACxB,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC5B,CAAC;qBACL;iBACJ;aACJ;YAED,IAAI,YAAY,GAAG,CAAC,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,cAAc,CAAC,CAAC;aAClD;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CACT,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD,CAAC;SACL;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI;YACA,MAAM,aAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;SACpC;QAAC,OAAO,KAAK,EAAE;YACZ,aAAa;SAChB;IACL,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,WAAmB,KAAK;QAC5C,WAAW,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;CACJ;AAjUD,gCAiUC"}
1
+ {"version":3,"file":"MFAManager.js","sourceRoot":"","sources":["../../src/common/MFAManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * MFA存储接口,定义了MFA会话存储的基本操作
3
+ */
4
+ export interface MFASessionStorage {
5
+ /**
6
+ * 创建一个等待MFA验证码的会话
7
+ * @param sessionId 会话ID
8
+ * @param timeout 超时时间(毫秒)
9
+ * @returns Promise<string> 返回验证码
10
+ */
11
+ waitForMFACode(sessionId: string, timeout?: number): Promise<string>;
12
+ /**
13
+ * 提交MFA验证码
14
+ * @param sessionId 会话ID
15
+ * @param code 验证码
16
+ * @returns 是否成功提交
17
+ */
18
+ submitMFACode(sessionId: string, code: string): Promise<boolean>;
19
+ /**
20
+ * 取消MFA验证
21
+ * @param sessionId 会话ID
22
+ * @param reason 取消原因
23
+ * @returns 是否成功取消
24
+ */
25
+ cancelMFARequest(sessionId: string, reason?: string): Promise<boolean>;
26
+ /**
27
+ * 检查会话是否存在
28
+ * @param sessionId 会话ID
29
+ * @returns 是否存在
30
+ */
31
+ hasSession(sessionId: string): Promise<boolean>;
32
+ /**
33
+ * 获取所有活跃的会话ID
34
+ * @returns 会话ID列表
35
+ */
36
+ getActiveSessions(): Promise<string[]>;
37
+ /**
38
+ * 清理过期的请求
39
+ * @param maxAge 最大存活时间(毫秒)
40
+ */
41
+ cleanupExpiredRequests(maxAge?: number): Promise<void>;
42
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MFASessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MFASessionStorage.js","sourceRoot":"","sources":["../../src/common/MFASessionStorage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { MFASessionStorage } from './MFASessionStorage';
2
+ /**
3
+ * Redis实现的MFA会话存储
4
+ */
5
+ export declare class RedisMFASessionStorage implements MFASessionStorage {
6
+ private redis;
7
+ private readonly DEFAULT_TIMEOUT;
8
+ private readonly KEY_PREFIX;
9
+ constructor(redisUrl?: string, redisToken?: string, redisClient?: any);
10
+ /**
11
+ * 获取会话键名
12
+ */
13
+ private getSessionKey;
14
+ /**
15
+ * 创建一个等待MFA验证码的Promise
16
+ * @param sessionId 会话ID
17
+ * @param timeout 超时时间(毫秒)
18
+ * @returns Promise<string> 返回验证码
19
+ */
20
+ waitForMFACode(sessionId: string, timeout?: number): Promise<string>;
21
+ /**
22
+ * 提交MFA验证码
23
+ * @param sessionId 会话ID
24
+ * @param code 验证码
25
+ * @returns 是否成功提交
26
+ */
27
+ submitMFACode(sessionId: string, code: string): Promise<boolean>;
28
+ /**
29
+ * 取消MFA验证
30
+ * @param sessionId 会话ID
31
+ * @param reason 取消原因
32
+ * @returns 是否成功取消
33
+ */
34
+ cancelMFARequest(sessionId: string, reason?: string): Promise<boolean>;
35
+ /**
36
+ * 检查会话是否存在
37
+ * @param sessionId 会话ID
38
+ * @returns 是否存在
39
+ */
40
+ hasSession(sessionId: string): Promise<boolean>;
41
+ /**
42
+ * 获取所有活跃的会话ID
43
+ * @returns 会话ID列表
44
+ */
45
+ getActiveSessions(): Promise<string[]>;
46
+ /**
47
+ * 清理过期的请求
48
+ * @param maxAge 最大存活时间(毫秒)
49
+ */
50
+ cleanupExpiredRequests(maxAge?: number): Promise<void>;
51
+ /**
52
+ * 清理指定会话的资源
53
+ * @param sessionId 会话ID
54
+ */
55
+ private cleanupRequest;
56
+ /**
57
+ * 关闭Redis连接
58
+ */
59
+ disconnect(): Promise<void>;
60
+ }
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisMFASessionStorage = void 0;
4
+ /**
5
+ * Redis实现的MFA会话存储
6
+ */
7
+ class RedisMFASessionStorage {
8
+ constructor(redisUrl, redisToken, redisClient) {
9
+ this.DEFAULT_TIMEOUT = 5 * 60 * 1000; // 5分钟
10
+ this.KEY_PREFIX = 'mfa:session:';
11
+ if (redisClient) {
12
+ this.redis = redisClient;
13
+ }
14
+ else if (redisUrl && redisToken) {
15
+ // 使用Upstash Redis
16
+ try {
17
+ const { Redis } = require('@upstash/redis');
18
+ this.redis = new Redis({
19
+ url: redisUrl,
20
+ token: redisToken
21
+ });
22
+ }
23
+ catch (error) {
24
+ throw new Error('Upstash Redis module not found. Please install @upstash/redis: npm install @upstash/redis');
25
+ }
26
+ }
27
+ else if (redisUrl) {
28
+ // 动态导入redis模块
29
+ try {
30
+ const Redis = require('ioredis');
31
+ this.redis = new Redis(redisUrl);
32
+ }
33
+ catch (error) {
34
+ throw new Error('Redis module not found. Please install ioredis: npm install ioredis');
35
+ }
36
+ }
37
+ else {
38
+ throw new Error('Either redisUrl with redisToken (for Upstash) or redisClient must be provided');
39
+ }
40
+ }
41
+ /**
42
+ * 获取会话键名
43
+ */
44
+ getSessionKey(sessionId) {
45
+ return `${this.KEY_PREFIX}${sessionId}`;
46
+ }
47
+ /**
48
+ * 创建一个等待MFA验证码的Promise
49
+ * @param sessionId 会话ID
50
+ * @param timeout 超时时间(毫秒)
51
+ * @returns Promise<string> 返回验证码
52
+ */
53
+ async waitForMFACode(sessionId, timeout = this.DEFAULT_TIMEOUT) {
54
+ // 清理可能存在的旧会话
55
+ await this.cleanupRequest(sessionId);
56
+ // 创建会话数据
57
+ const sessionData = {
58
+ sessionId,
59
+ status: 'waiting',
60
+ createdAt: new Date().toISOString(),
61
+ timeout: timeout
62
+ };
63
+ const sessionKey = this.getSessionKey(sessionId);
64
+ // 使用Redis的SET命令存储会话数据,并设置过期时间
65
+ await this.redis.setex(sessionKey, Math.ceil(timeout / 1000), // Redis的TTL是秒
66
+ JSON.stringify(sessionData));
67
+ console.log(`MFA验证会话已创建: ${sessionId}`);
68
+ // 轮询检查验证码是否已提交
69
+ return new Promise((resolve, reject) => {
70
+ const startTime = Date.now();
71
+ const checkInterval = setInterval(async () => {
72
+ try {
73
+ // 检查是否超时
74
+ if (Date.now() - startTime > timeout) {
75
+ clearInterval(checkInterval);
76
+ await this.cleanupRequest(sessionId);
77
+ reject(new Error('MFA验证超时,请重新登录'));
78
+ return;
79
+ }
80
+ // 检查会话状态
81
+ const data = await this.redis.get(sessionKey);
82
+ if (!data) {
83
+ clearInterval(checkInterval);
84
+ reject(new Error('MFA验证会话已过期'));
85
+ return;
86
+ }
87
+ // 确保data是字符串,如果是对象则先转换为字符串
88
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data);
89
+ const session = JSON.parse(dataStr);
90
+ // 如果状态已更新为resolved,则返回验证码
91
+ if (session.status === 'resolved' && session.code) {
92
+ clearInterval(checkInterval);
93
+ await this.cleanupRequest(sessionId);
94
+ resolve(session.code);
95
+ return;
96
+ }
97
+ // 如果状态已更新为rejected,则抛出错误
98
+ if (session.status === 'rejected' && session.error) {
99
+ clearInterval(checkInterval);
100
+ await this.cleanupRequest(sessionId);
101
+ reject(new Error(session.error));
102
+ return;
103
+ }
104
+ }
105
+ catch (error) {
106
+ clearInterval(checkInterval);
107
+ await this.cleanupRequest(sessionId);
108
+ reject(error instanceof Error
109
+ ? error
110
+ : new Error(String(error)));
111
+ }
112
+ }, 1000); // 每秒检查一次
113
+ });
114
+ }
115
+ /**
116
+ * 提交MFA验证码
117
+ * @param sessionId 会话ID
118
+ * @param code 验证码
119
+ * @returns 是否成功提交
120
+ */
121
+ async submitMFACode(sessionId, code) {
122
+ const sessionKey = this.getSessionKey(sessionId);
123
+ try {
124
+ // 获取会话数据
125
+ const data = await this.redis.get(sessionKey);
126
+ if (!data) {
127
+ console.log(`未找到MFA验证会话: ${sessionId}`);
128
+ return false;
129
+ }
130
+ // 确保data是字符串,如果是对象则先转换为字符串
131
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data);
132
+ const session = JSON.parse(dataStr);
133
+ if (session.status !== 'waiting') {
134
+ console.log(`MFA验证会话状态不正确: ${sessionId}, 状态: ${session.status}`);
135
+ return false;
136
+ }
137
+ // 更新会话状态为已解决
138
+ session.status = 'resolved';
139
+ session.code = code;
140
+ session.resolvedAt = new Date().toISOString();
141
+ await this.redis.set(sessionKey, JSON.stringify(session));
142
+ console.log(`MFA验证码已提交: code ${code}, sessionId ${sessionId}`);
143
+ return true;
144
+ }
145
+ catch (error) {
146
+ console.log(`提交MFA验证码失败: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
147
+ return false;
148
+ }
149
+ }
150
+ /**
151
+ * 取消MFA验证
152
+ * @param sessionId 会话ID
153
+ * @param reason 取消原因
154
+ * @returns 是否成功取消
155
+ */
156
+ async cancelMFARequest(sessionId, reason = 'MFA验证已取消') {
157
+ const sessionKey = this.getSessionKey(sessionId);
158
+ try {
159
+ // 获取会话数据
160
+ const data = await this.redis.get(sessionKey);
161
+ if (!data) {
162
+ console.log(`未找到MFA验证会话: ${sessionId}`);
163
+ return false;
164
+ }
165
+ // 确保data是字符串,如果是对象则先转换为字符串
166
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data);
167
+ const session = JSON.parse(dataStr);
168
+ // 更新会话状态为已拒绝
169
+ session.status = 'rejected';
170
+ session.error = reason;
171
+ session.rejectedAt = new Date().toISOString();
172
+ await this.redis.set(sessionKey, JSON.stringify(session));
173
+ console.log(`MFA验证已取消: ${sessionId}, 原因: ${reason}`);
174
+ return true;
175
+ }
176
+ catch (error) {
177
+ console.log(`取消MFA验证失败: ${sessionId}, 错误: ${error instanceof Error ? error.message : String(error)}`);
178
+ return false;
179
+ }
180
+ }
181
+ /**
182
+ * 检查会话是否存在
183
+ * @param sessionId 会话ID
184
+ * @returns 是否存在
185
+ */
186
+ async hasSession(sessionId) {
187
+ const sessionKey = this.getSessionKey(sessionId);
188
+ try {
189
+ const exists = await this.redis.exists(sessionKey);
190
+ return exists === 1;
191
+ }
192
+ catch (_a) {
193
+ return false;
194
+ }
195
+ }
196
+ /**
197
+ * 获取所有活跃的会话ID
198
+ * @returns 会话ID列表
199
+ */
200
+ async getActiveSessions() {
201
+ try {
202
+ const keys = await this.redis.keys(`${this.KEY_PREFIX}*`);
203
+ return keys.map((key) => key.replace(this.KEY_PREFIX, ''));
204
+ }
205
+ catch (error) {
206
+ console.error('获取活跃会话失败:', error instanceof Error ? error : String(error));
207
+ return [];
208
+ }
209
+ }
210
+ /**
211
+ * 清理过期的请求
212
+ * @param maxAge 最大存活时间(毫秒)
213
+ */
214
+ async cleanupExpiredRequests(maxAge = this.DEFAULT_TIMEOUT) {
215
+ try {
216
+ const keys = await this.redis.keys(`${this.KEY_PREFIX}*`);
217
+ const now = new Date();
218
+ let cleanedCount = 0;
219
+ for (const key of keys) {
220
+ try {
221
+ const data = await this.redis.get(key);
222
+ if (!data)
223
+ continue;
224
+ // 确保data是字符串,如果是对象则先转换为字符串
225
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data);
226
+ const session = JSON.parse(dataStr);
227
+ const createdAt = new Date(session.createdAt);
228
+ // 检查是否过期
229
+ if (now.getTime() - createdAt.getTime() > maxAge) {
230
+ await this.redis.del(key);
231
+ cleanedCount++;
232
+ }
233
+ }
234
+ catch (error) {
235
+ // 如果处理失败,直接删除
236
+ try {
237
+ await this.redis.del(key);
238
+ cleanedCount++;
239
+ }
240
+ catch (unlinkError) {
241
+ console.error(`删除过期会话失败: ${key}`, unlinkError instanceof Error
242
+ ? unlinkError
243
+ : String(unlinkError));
244
+ }
245
+ }
246
+ }
247
+ if (cleanedCount > 0) {
248
+ console.log(`清理了 ${cleanedCount} 个过期的MFA验证会话`);
249
+ }
250
+ }
251
+ catch (error) {
252
+ console.error('清理过期请求失败:', error instanceof Error ? error : String(error));
253
+ }
254
+ }
255
+ /**
256
+ * 清理指定会话的资源
257
+ * @param sessionId 会话ID
258
+ */
259
+ async cleanupRequest(sessionId) {
260
+ const sessionKey = this.getSessionKey(sessionId);
261
+ try {
262
+ await this.redis.del(sessionKey);
263
+ }
264
+ catch (error) {
265
+ // 忽略错误
266
+ }
267
+ }
268
+ /**
269
+ * 关闭Redis连接
270
+ */
271
+ async disconnect() {
272
+ if (this.redis && typeof this.redis.disconnect === 'function') {
273
+ await this.redis.disconnect();
274
+ }
275
+ else if (this.redis && typeof this.redis.quit === 'function') {
276
+ await this.redis.quit();
277
+ }
278
+ }
279
+ }
280
+ exports.RedisMFASessionStorage = RedisMFASessionStorage;
281
+ //# sourceMappingURL=RedisMFASessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisMFASessionStorage.js","sourceRoot":"","sources":["../../src/common/RedisMFASessionStorage.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,14 @@ export type GCHttpClientConfig = {
14
14
  timeout?: number;
15
15
  domain?: GarminDomain;
16
16
  mfaStorageDir?: string;
17
+ mfa?: MFAConfig;
18
+ };
19
+ export type MFAConfig = {
20
+ type: 'file' | 'redis';
21
+ dir?: string;
22
+ redisUrl?: string;
23
+ redisToken?: string;
24
+ redis?: any;
17
25
  };
18
26
  export type EventCallback<T> = (data: T) => void;
19
27
  export interface Listeners {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/garmin/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,6CAA2B;AAqB3B,IAAY,KAEX;AAFD,WAAY,KAAK;IACb,wCAA+B,CAAA;AACnC,CAAC,EAFW,KAAK,GAAL,aAAK,KAAL,aAAK,QAEhB;AAED,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/garmin/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,6CAA2B;AA8B3B,IAAY,KAEX;AAFD,WAAY,KAAK;IACb,wCAA+B,CAAA;AACnC,CAAC,EAFW,KAAK,GAAL,aAAK,KAAL,aAAK,QAEhB;AAED,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooin/garmin-connect",
3
- "version": "1.7.3",
3
+ "version": "1.7.4",
4
4
  "description": "Makes it simple to interface with Garmin Connect to get or set any data point",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -41,6 +41,7 @@
41
41
  "@types/luxon": "^3.3.2",
42
42
  "@types/node": "^18.11.15",
43
43
  "@types/qs": "^6.9.7",
44
+ "@types/redis": "^4.0.11",
44
45
  "@types/request-promise": "^4.1.48",
45
46
  "pre-commit": "^1.2.2",
46
47
  "prettier": "^2.8.1",
@@ -53,15 +54,18 @@
53
54
  },
54
55
  "runkitExampleFilename": "./examples/example.js",
55
56
  "dependencies": {
57
+ "@upstash/redis": "^1.35.6",
56
58
  "app-root-path": "^3.1.0",
57
59
  "axios": "^1.5.1",
58
60
  "axios-cookiejar-support": "^6.0.4",
59
61
  "crypto": "^1.0.1",
60
62
  "form-data": "^4.0.0",
63
+ "ioredis": "^5.8.1",
61
64
  "lodash": "^4.17.21",
62
65
  "luxon": "^3.4.3",
63
66
  "oauth-1.0a": "^2.2.6",
64
67
  "qs": "^6.11.2",
68
+ "redis": "^4.6.10",
65
69
  "tough-cookie": "^6.0.0"
66
70
  },
67
71
  "pre-commit": "pretty"