mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-04-21 05:09:32 +08:00
feat: 升级 http-proxy-middleware
This commit is contained in:
parent
6a026a3d07
commit
8116c78dda
@ -26,7 +26,7 @@
|
|||||||
"cron": "^3.1.6",
|
"cron": "^3.1.6",
|
||||||
"dns-packet": "^5.6.1",
|
"dns-packet": "^5.6.1",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"http-proxy-middleware": "^2.0.6",
|
"http-proxy-middleware": "^3.0.3",
|
||||||
"ip-address": "^9.0.5",
|
"ip-address": "^9.0.5",
|
||||||
"js-base64": "^3.7.2",
|
"js-base64": "^3.7.2",
|
||||||
"jsrsasign": "^11.1.0",
|
"jsrsasign": "^11.1.0",
|
||||||
|
40
backend/pnpm-lock.yaml
generated
40
backend/pnpm-lock.yaml
generated
@ -33,8 +33,8 @@ importers:
|
|||||||
specifier: ^4.17.1
|
specifier: ^4.17.1
|
||||||
version: 4.21.2
|
version: 4.21.2
|
||||||
http-proxy-middleware:
|
http-proxy-middleware:
|
||||||
specifier: ^2.0.6
|
specifier: ^3.0.3
|
||||||
version: 2.0.7
|
version: 3.0.3
|
||||||
ip-address:
|
ip-address:
|
||||||
specifier: ^9.0.5
|
specifier: ^9.0.5
|
||||||
version: 9.0.5
|
version: 9.0.5
|
||||||
@ -2366,14 +2366,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
http-proxy-middleware@2.0.7:
|
http-proxy-middleware@3.0.3:
|
||||||
resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==}
|
resolution: {integrity: sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||||
peerDependencies:
|
|
||||||
'@types/express': ^4.17.13
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/express':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
http-proxy@1.18.1:
|
http-proxy@1.18.1:
|
||||||
resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
|
resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
|
||||||
@ -2597,10 +2592,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
is-plain-obj@3.0.0:
|
|
||||||
resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
|
|
||||||
is-plain-object@2.0.4:
|
is-plain-object@2.0.4:
|
||||||
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -5424,7 +5415,7 @@ snapshots:
|
|||||||
|
|
||||||
axios@0.21.4:
|
axios@0.21.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
follow-redirects: 1.15.9
|
follow-redirects: 1.15.9(debug@4.4.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
|
|
||||||
@ -6767,7 +6758,9 @@ snapshots:
|
|||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
readable-stream: 2.3.8
|
readable-stream: 2.3.8
|
||||||
|
|
||||||
follow-redirects@1.15.9: {}
|
follow-redirects@1.15.9(debug@4.4.0):
|
||||||
|
optionalDependencies:
|
||||||
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
|
|
||||||
for-each@0.3.3:
|
for-each@0.3.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7150,20 +7143,21 @@ snapshots:
|
|||||||
statuses: 2.0.1
|
statuses: 2.0.1
|
||||||
toidentifier: 1.0.1
|
toidentifier: 1.0.1
|
||||||
|
|
||||||
http-proxy-middleware@2.0.7:
|
http-proxy-middleware@3.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/http-proxy': 1.17.15
|
'@types/http-proxy': 1.17.15
|
||||||
http-proxy: 1.18.1
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
|
http-proxy: 1.18.1(debug@4.4.0)
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
is-plain-obj: 3.0.0
|
is-plain-object: 5.0.0
|
||||||
micromatch: 4.0.8
|
micromatch: 4.0.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- supports-color
|
||||||
|
|
||||||
http-proxy@1.18.1:
|
http-proxy@1.18.1(debug@4.4.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
eventemitter3: 4.0.7
|
eventemitter3: 4.0.7
|
||||||
follow-redirects: 1.15.9
|
follow-redirects: 1.15.9(debug@4.4.0)
|
||||||
requires-port: 1.0.0
|
requires-port: 1.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
@ -7382,8 +7376,6 @@ snapshots:
|
|||||||
|
|
||||||
is-plain-obj@2.1.0: {}
|
is-plain-obj@2.1.0: {}
|
||||||
|
|
||||||
is-plain-obj@3.0.0: {}
|
|
||||||
|
|
||||||
is-plain-object@2.0.4:
|
is-plain-object@2.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
isobject: 3.0.1
|
isobject: 3.0.1
|
||||||
|
@ -194,11 +194,12 @@ export default function serve() {
|
|||||||
|
|
||||||
const staticFileMiddleware = express_.static(fe_path);
|
const staticFileMiddleware = express_.static(fe_path);
|
||||||
|
|
||||||
let be_share_rewrite = '/share/:type/:name';
|
|
||||||
let be_api_rewrite = '';
|
|
||||||
let be_download_rewrite = '';
|
|
||||||
let be_api = '/api/';
|
let be_api = '/api/';
|
||||||
let be_download = '/download/';
|
let be_download = '/download/';
|
||||||
|
let be_share = '/share/';
|
||||||
|
let be_download_rewrite = '';
|
||||||
|
let be_api_rewrite = '';
|
||||||
|
let be_share_rewrite = `${be_share}:type/:name`;
|
||||||
if (fe_be_path) {
|
if (fe_be_path) {
|
||||||
if (!fe_be_path.startsWith('/')) {
|
if (!fe_be_path.startsWith('/')) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
@ -217,7 +218,7 @@ export default function serve() {
|
|||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}`,
|
target: `http://127.0.0.1:${port}`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: (path, req) => {
|
pathRewrite: async (path, req) => {
|
||||||
if (req.method.toLowerCase() !== 'get')
|
if (req.method.toLowerCase() !== 'get')
|
||||||
throw new Error('Method not allowed');
|
throw new Error('Method not allowed');
|
||||||
const tokens = $.read(TOKENS_KEY) || [];
|
const tokens = $.read(TOKENS_KEY) || [];
|
||||||
@ -229,34 +230,26 @@ export default function serve() {
|
|||||||
(t.exp == null || t.exp > Date.now()),
|
(t.exp == null || t.exp > Date.now()),
|
||||||
);
|
);
|
||||||
if (!token) throw new Error('Forbbiden');
|
if (!token) throw new Error('Forbbiden');
|
||||||
return path;
|
return req.originalUrl;
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
app.use(
|
app.use(
|
||||||
be_api_rewrite,
|
be_api_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}`,
|
target: `http://127.0.0.1:${port}${be_api}`,
|
||||||
pathRewrite: (path) => {
|
pathRewrite: async (path) => {
|
||||||
const newPath = path.startsWith(be_api_rewrite)
|
return path.includes('?')
|
||||||
? path.replace(be_api_rewrite, be_api)
|
? `${path}&share=true`
|
||||||
: path;
|
: `${path}?share=true`;
|
||||||
return newPath.includes('?')
|
|
||||||
? `${newPath}&share=true`
|
|
||||||
: `${newPath}?share=true`;
|
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
app.use(
|
app.use(
|
||||||
be_download_rewrite,
|
be_download_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}`,
|
target: `http://127.0.0.1:${port}${be_download}`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: (path) => {
|
|
||||||
return path.startsWith(be_download_rewrite)
|
|
||||||
? path.replace(be_download_rewrite, be_download)
|
|
||||||
: path;
|
|
||||||
},
|
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user