Files
GL.iNet-Yongping.Xie f49525ee9c feat: add personal center with TOTP 2FA and trusted devices
- Personal Center page with profile editing and last-login info
- TOTP-based two-factor authentication with QR code setup
- 30-day trusted-device cookie to skip 2FA on familiar browsers
- Friendly browser/OS labels for the trusted device list

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-06 21:17:44 -07:00

63 lines
1.8 KiB
JSON

{
"name": "vite-project",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite --mode development",
"test": "vite --mode test",
"prod": "vite --mode production",
"build": "vite build --mode production",
"build:dev": "vite build --mode development",
"build:test": "vite build --mode test",
"build:prodCn": "vite build --mode productionCn",
"deploy": "scp -r ./dist root@107.173.152.173:/root/glkvm_cloud/ui/dist",
"preview": "vite preview",
"lint-all": "eslint src/**/*.{js,vue}",
"lint": "lint-staged",
"prepare": "husky"
},
"dependencies": {
"@types/qrcode": "^1.5.6",
"@vue/eslint-config-typescript": "12.0.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/addon-web-links": "0.11.0",
"@xterm/xterm": "5.5.0",
"ant-design-vue": "^4.2.6",
"axios": "^1.9.0",
"dayjs": "^1.11.13",
"gl-web-main": "1.0.2",
"js-cookie": "^3.0.5",
"jsencrypt": "^3.3.2",
"pinia": "^3.0.2",
"qrcode": "^1.5.4",
"sass": "^1.89.0",
"simple-keyboard": "3.8.69",
"sortablejs": "^1.15.7",
"vite-plugin-remove-console": "^2.2.0",
"vue": "^3.5.13",
"vue-clipboard3": "2.0.0",
"vue-i18n": "^11.1.5",
"vue-router": "^4.5.1",
"xss": "^1.0.15"
},
"devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@rushstack/eslint-patch": "1.3.3",
"@tsconfig/node18": "^18.2.4",
"@types/js-cookie": "^3.0.6",
"@types/node": "^22.15.24",
"@vitejs/plugin-vue": "^5.2.4",
"@vue/tsconfig": "^0.7.0",
"eslint": "8.49.0",
"eslint-plugin-vue": "9.17.0",
"globals": "^16.2.0",
"husky": "^9.1.7",
"lint-staged": "15.2.10",
"typescript": "5.3",
"vite": "^6.3.5",
"vue-tsc": "^2.2.8"
}
}