feat: Node.js 前端代理后端路由 需设置环境变量 注意安全 SUB_STORE_FRONTEND_BACKEND_PATH=/prefix

This commit is contained in:
xream 2023-12-13 01:26:16 +08:00
parent 8f2dbfe3df
commit c35e9d37ae
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
2 changed files with 12 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "sub-store", "name": "sub-store",
"version": "2.14.124", "version": "2.14.125",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js", "main": "src/main.js",
"scripts": { "scripts": {

View File

@ -71,15 +71,21 @@ export default function serve() {
let be_rewrite = ''; let be_rewrite = '';
let be_api = '/api/'; let be_api = '/api/';
if (fe_be_path) { if (fe_be_path) {
be_rewrite = `${fe_be_path}/api/`; if (!fe_be_path.startsWith('/')) {
throw new Error(
'SUB_STORE_FRONTEND_BACKEND_PATH should start with /',
);
}
be_rewrite = `${fe_be_path === '/' ? '' : fe_be_path}${be_api}`;
app.use( app.use(
fe_be_path, be_rewrite,
createProxyMiddleware({ createProxyMiddleware({
target: `http://127.0.0.1:${port}`, target: `http://127.0.0.1:${port}`,
changeOrigin: true, changeOrigin: true,
ws: true, pathRewrite: (path) => {
pathRewrite: { return path.startsWith(be_rewrite)
[`^${be_rewrite}`]: be_api, ? path.replace(be_rewrite, be_api)
: path;
}, },
}), }),
); );