diff --git a/apps/cf-page-vless/src/app/app.tsx b/apps/cf-page-vless/src/app/app.tsx index 3e9d949..529195e 100644 --- a/apps/cf-page-vless/src/app/app.tsx +++ b/apps/cf-page-vless/src/app/app.tsx @@ -1,11 +1,9 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars import styles from './app.module.css'; -import NxWelcome from './nx-welcome'; export function App() { return ( <> -
); diff --git a/functions/_middleware.ts b/functions/_middleware.ts index f392af9..dc7ff81 100644 --- a/functions/_middleware.ts +++ b/functions/_middleware.ts @@ -48,7 +48,7 @@ function authentication(context: EventContext) { status: 302, headers: { 'content-type': 'text/html; charset=utf-8', - Location: `./${userID}`, + Location: `./${userID}?wspath=${encodeURIComponent('/vless')}`, }, }); } else { diff --git a/libs/edge-ui/src/lib/app.tsx b/libs/edge-ui/src/lib/app.tsx index 3b45f93..8f9043b 100644 --- a/libs/edge-ui/src/lib/app.tsx +++ b/libs/edge-ui/src/lib/app.tsx @@ -308,18 +308,29 @@ function ShareActions({ function getVlessURL() { const url = new URL(window.location.href); const uuid = url.pathname.split('/').find(uuidValidate); - let pathParam = ''; + let port = url.port; + const isHttps = url.protocol === 'https:'; + if (!port) { + if (isHttps) { + port = '443'; + } else { + port = '80'; + } + } + let pathParam = url.searchParams.get('wspath') || ''; if (v2option.ws0Rtt) { pathParam = `${pathParam}?ed=2048`; } if (pathParam) { pathParam = `&path=${encodeURIComponent(pathParam)}`; } + let tls = ''; + if (isHttps) { + tls = `&security=tls`; + } return `vless://${uuid}@${ url.hostname - }:443?encryption=none&security=tls&type=ws${pathParam || ''}#${ - url.hostname - }`; + }:${port}?encryption=none${tls}&type=ws${pathParam || ''}#${url.hostname}`; } return ( diff --git a/package.json b/package.json index 055ca9c..464b619 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "start": "node dist/apps/node-vless/main.js", "build": "nx build", - "cf-page-vless": "wrangler pages dev dist/apps/cf-page-vless", + "cf-page-vless": "nx build cf-page-vless", "node-vless:build": "nx build cf-page-vless --configuration=production && nx build node-vless --configurations=production", "node-vless:bunled": "nx build cf-page-vless --configuration=production && nx build node-vless --skip-nx-cache --configurations=production -- --externalDependencies=none", "node-vless:start": "node dist/apps/node-vless/main.js",