aicodeswitch 1.5.0 → 1.6.0
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.
- package/dist/server/proxy-server.js +54 -1
- package/dist/ui/assets/index-Bw_1Ltv0.js +361 -0
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/index-DJ5R6Vso.js +0 -360
- package/src/server/auth.ts +0 -79
- package/src/server/database.ts +0 -809
- package/src/server/main.ts +0 -514
- package/src/server/proxy-server.ts +0 -1301
- package/src/server/transformers/chunk-collector.ts +0 -202
- package/src/server/transformers/claude-openai.ts +0 -261
- package/src/server/transformers/openai-responses.ts +0 -440
- package/src/server/transformers/streaming.ts +0 -775
- package/src/server/version-check.ts +0 -108
- package/src/types/index.ts +0 -217
- package/src/ui/App.tsx +0 -342
- package/src/ui/api/client.ts +0 -179
- package/src/ui/components/JSONViewer.tsx +0 -89
- package/src/ui/constants/index.ts +0 -4
- package/src/ui/docs/vendors-recommand.md +0 -13
- package/src/ui/main.tsx +0 -10
- package/src/ui/pages/LogsPage.tsx +0 -702
- package/src/ui/pages/RoutesPage.tsx +0 -552
- package/src/ui/pages/SettingsPage.tsx +0 -206
- package/src/ui/pages/StatisticsPage.tsx +0 -620
- package/src/ui/pages/UsagePage.tsx +0 -13
- package/src/ui/pages/VendorsPage.tsx +0 -490
- package/src/ui/pages/WriteConfigPage.tsx +0 -198
- package/src/ui/styles/App.css +0 -831
- package/src/ui/styles/index.css +0 -137
package/src/server/auth.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Request, Response, NextFunction } from 'express';
|
|
2
|
-
import jwt from 'jsonwebtoken';
|
|
3
|
-
import crypto from 'crypto';
|
|
4
|
-
|
|
5
|
-
const AUTH_CODE = process.env.AUTH || '';
|
|
6
|
-
const JWT_SECRET = process.env.JWT_SECRET || (AUTH_CODE ? crypto.createHash('sha256').update(AUTH_CODE).digest('hex') : '');
|
|
7
|
-
const TOKEN_EXPIRY = '7d'; // 7天有效期
|
|
8
|
-
|
|
9
|
-
interface JWTPayload {
|
|
10
|
-
authenticated: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* 检查是否启用鉴权
|
|
15
|
-
*/
|
|
16
|
-
export function isAuthEnabled(): boolean {
|
|
17
|
-
return AUTH_CODE.trim().length > 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* 验证鉴权码
|
|
22
|
-
*/
|
|
23
|
-
export function verifyAuthCode(authCode: string): boolean {
|
|
24
|
-
if (!isAuthEnabled()) {
|
|
25
|
-
return true; // 未启用鉴权,直接通过
|
|
26
|
-
}
|
|
27
|
-
return authCode === AUTH_CODE;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 生成 JWT Token
|
|
32
|
-
*/
|
|
33
|
-
export function generateToken(): string {
|
|
34
|
-
const payload: JWTPayload = {
|
|
35
|
-
authenticated: true,
|
|
36
|
-
};
|
|
37
|
-
return jwt.sign(payload, JWT_SECRET, { expiresIn: TOKEN_EXPIRY });
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* 验证 JWT Token
|
|
42
|
-
*/
|
|
43
|
-
export function verifyToken(token: string): boolean {
|
|
44
|
-
try {
|
|
45
|
-
jwt.verify(token, JWT_SECRET) as JWTPayload;
|
|
46
|
-
return true;
|
|
47
|
-
} catch (error) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Express 中间件: 验证 JWT Token
|
|
54
|
-
*
|
|
55
|
-
* 如果未启用鉴权,直接放行
|
|
56
|
-
* 如果启用鉴权但 token 无效,返回 401
|
|
57
|
-
*/
|
|
58
|
-
export function authMiddleware(req: Request, res: Response, next: NextFunction): void {
|
|
59
|
-
// 如果未启用鉴权,直接放行
|
|
60
|
-
if (!isAuthEnabled()) {
|
|
61
|
-
next();
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// 从 Authorization header 中提取 token
|
|
66
|
-
const authHeader = req.headers.authorization;
|
|
67
|
-
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
68
|
-
res.status(401).json({ error: 'Unauthorized: Missing or invalid token' });
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const token = authHeader.substring(7); // 移除 "Bearer " 前缀
|
|
73
|
-
|
|
74
|
-
if (verifyToken(token)) {
|
|
75
|
-
next();
|
|
76
|
-
} else {
|
|
77
|
-
res.status(401).json({ error: 'Unauthorized: Invalid or expired token' });
|
|
78
|
-
}
|
|
79
|
-
}
|