Files
iot-dc3/dc3-web/index.html
pnoker a73ba1267a refactor(web,auth): httpOnly cookie auth + CSP + dedup + type debt
- token: httpOnly+Secure+SameSite cookie (backend Set/Clear + filter Cookie-first read), frontend axios drops X-Auth-Token, auth store uses sessionStorage flag, router guard checks flag
- security: CSP + nosniff + Referrer-Policy in index.html; delete dead getCookies/setCookies/removeCookies; remove Base64 obfuscation from storageUtil
- fix: 24 double-notification .catch failMessage removed (interceptor handles); storageUtil boolean get/set asymmetry fixed
- types: DeviceDetail/profile-detail/device-edit {} as any -> Partial<DeviceRecord>/DriverRecord/ProfileRecord
- dedup: API CRUD factory (11 modules), i18n confirmDelete interpolation (54 lines removed), CardShell unified + shared form-width mixin

Verification: vue-tsc green / 158 unit tests pass / mvn compile green
2026-08-08 18:40:58 +08:00

69 lines
2.7 KiB
HTML

<!--
~ Copyright 2016-present the IoT DC3 original author or authors.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as
~ published by the Free Software Foundation, either version 3 of the
~ License, or (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<meta content="telephone=no" name="format-detection"/>
<meta content="yes" name="mobile-web-app-capable"/>
<meta content="black" name="apple-mobile-web-app-status-bar-style"/>
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0" name="viewport"/>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://webapi.amap.com; connect-src 'self' https://*.amap.com; img-src 'self' data: https://*.amap.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; frame-ancestors 'none'; base-uri 'self'"/>
<meta http-equiv="X-Content-Type-Options" content="nosniff"/>
<meta http-equiv="Referrer-Policy" content="no-referrer"/>
<meta
content="IoT DC3, 一个基于Spring Cloud的开源的, 分布式的物联网(IOT)平台,用于快速开发物联网项目和管理物联设备,是一整套物联系统解决方案。"
name="description"
/>
<link href="/favicon.svg" rel="icon" type="image/svg+xml"/>
<link href="/css/animate/animate.min.css" rel="stylesheet"/>
<link href="/css/index/index.min.css" rel="stylesheet"/>
<title>IoT DC3 平台</title>
</head>
<body ondragstart="return false;">
<noscript>
<strong
>很抱歉, 如果没有 JavaScript 支持, IoT DC3 WEB 将不能正常工作。请启用浏览器的 JavaScript 然后继续。</strong
>
</noscript>
<script charset="utf-8" src="/js/prefix.min.js" type="text/javascript"></script>
<div id="app">
<div class="base">
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
<div class="cube"></div>
</div>
</div>
<script src="/src/main.ts" type="module"></script>
</body>
</html>