refactor: overhaul auth system, routing, and navigation flows

This commit overhauls several core parts of the codebase:
- Replace legacy localStorage token storage with secure cookie-based authentication with automatic token refresh logic
- Rewrite checkToken and goLogin hooks to support redirect targets and proper async error handling
- Update all component navigation flows to use the updated auth checks and correct redirect behavior
- Refactor router configuration to support both client-side and server-side rendering via conditional history usage
- Remove unused speech recognition constant file and stale component registration for RecordingWaveBtn
- Add unit tests for navigation utilities and auth token handling
- Fix login post-success redirect logic and add login success event emissions
- Overhaul HTTP request handling to include automatic auth token injection and retry on unauthorized errors
This commit is contained in:
DEV_DSW
2026-06-04 11:07:30 +08:00
parent b71097155e
commit 354232b444
15 changed files with 712 additions and 91 deletions

2
components.d.ts vendored
View File

@@ -32,7 +32,6 @@ declare module 'vue' {
ModuleTitle: typeof import('./src/components/ModuleTitle/index.vue')['default']
Privacy: typeof import('./src/components/Privacy/index.vue')['default']
Qrcode: typeof import('./src/components/Qrcode/index.vue')['default']
RecordingWaveBtn: typeof import('./src/components/Speech/RecordingWaveBtn.vue')['default']
RefundPopup: typeof import('./src/components/RefundPopup/index.vue')['default']
ResponseIntro: typeof import('./src/components/ResponseIntro/index.vue')['default']
ResponseWrapper: typeof import('./src/components/ResponseWrapper/index.vue')['default']
@@ -89,7 +88,6 @@ declare global {
const ModuleTitle: typeof import('./src/components/ModuleTitle/index.vue')['default']
const Privacy: typeof import('./src/components/Privacy/index.vue')['default']
const Qrcode: typeof import('./src/components/Qrcode/index.vue')['default']
const RecordingWaveBtn: typeof import('./src/components/Speech/RecordingWaveBtn.vue')['default']
const RefundPopup: typeof import('./src/components/RefundPopup/index.vue')['default']
const ResponseIntro: typeof import('./src/components/ResponseIntro/index.vue')['default']
const ResponseWrapper: typeof import('./src/components/ResponseWrapper/index.vue')['default']