feat(webrtc): 完善前端会话恢复、设备绑定与开发代理配置

- 控制端新增页面刷新后自动恢复登录会话,并展示恢复中状态
- 支持被控端配对码绑定、设备在线状态标记及离线设备禁用连接
- 优化登录流程,支持双因子验证码输入
- 修复 API 客户端令牌刷新逻辑,增加认证失败统一回调
- 信令地址支持环境变量推导,ICE 服务器支持自定义配置
- 管理后台强制开发态走 Vite 代理,避免跨域和 IP 不可达问题
- 修复 tsconfig.node.json 产物干扰 vite 配置加载的构建问题
- 添加 .env.example 作为环境变量配置模板
This commit is contained in:
TongTongStudio
2026-08-03 02:44:52 +08:00
parent e689b999e6
commit e6ed7c8e3e
16 changed files with 465 additions and 116 deletions

View File

@@ -2,7 +2,20 @@ import axios from 'axios';
import { ElMessage } from 'element-plus';
import router from '@/router';
const BASE_URL = import.meta.env.VITE_API_BASE || 'http://localhost:8080';
/**
* 请求基地址。
*
* 开发态vite dev强制使用相对路径 '',即请求 /api/**
* 由 Vite dev server 代理转发到后端(见 vite.config.ts 的 server.proxy
* 目标取自 VITE_API_TARGET。这样浏览器侧始终同源从根本上避免
* - 跨域被拦截;
* - .env 里写死的后端 IP如 192.168.5.224)在当前网络/主机下不可达,
* 或用 localhost 打开页面时该 IP 解析不到,浏览器直接抛 "Failed to fetch"。
*
* 生产构建下才使用 VITE_API_BASE若未配置则同样走相对路径
* 由部署侧Nginx 等)反向代理 /api。
*/
const BASE_URL = import.meta.env.DEV ? '' : import.meta.env.VITE_API_BASE || '';
const request = axios.create({
baseURL: BASE_URL,

View File

@@ -7,7 +7,12 @@ declare module '*.vue' {
}
interface ImportMetaEnv {
/** 请求基地址,留空表示走相对路径 /api由 Vite 代理或部署侧反代转发)。 */
readonly VITE_API_BASE: string;
/** Vite dev server 的 /api 代理目标,仅构建工具侧读取。 */
readonly VITE_API_TARGET: string;
/** 默认管理令牌,需与服务端 application.yml 的 admin.token 一致。 */
readonly VITE_ADMIN_TOKEN: string;
}
interface ImportMeta {