Files
EchoChat/admin/src/utils/storage.js
bujinyuan 4d03215fe4 feat: Phase 1 完成 — 基础设施 + 用户认证 + 管理端 + 端到端验证
Phase 1 (基础设施与用户认证) 全部 11 个 Task 开发完成:

后端 (Go):
- Auth 模块: 注册/登录/JWT(有状态)/Profile/密码修改
- Admin 模块: 用户列表/详情/禁用/启用/角色分配/创建用户
- 中间件: JWT认证 + RBAC角色权限 + 请求日志 + CORS + Panic恢复
- Dockerfile 多阶段构建 + Docker Compose 全栈部署

前台 (uni-app):
- 登录/注册页面 + 自定义 TabBar + 个人中心
- 请求封装 + 状态管理 (Pinia)

管理端 (Vue 3 + Element Plus):
- 登录/仪表盘/用户列表/用户详情
- Axios 封装 + 路由守卫 + Pinia 状态管理

验证:
- 全流程 API 端到端测试通过
- Playwright 页面自动化验证通过
- code-reviewer 代码审查通过

Made-with: Cursor
2026-03-02 11:31:24 +08:00

55 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 本地存储工具(管理后台)
*
* 管理端使用 localStorageKey 前缀 admin_ 与前台隔离
*/
const KEYS = {
TOKEN: 'admin_token',
REFRESH_TOKEN: 'admin_refresh_token',
USER_INFO: 'admin_user'
}
/** 保存 Token */
export const saveToken = (token, refreshToken) => {
localStorage.setItem(KEYS.TOKEN, token)
if (refreshToken) localStorage.setItem(KEYS.REFRESH_TOKEN, refreshToken)
}
/** 获取 Access Token */
export const getToken = () => localStorage.getItem(KEYS.TOKEN)
/** 获取 Refresh Token */
export const getRefreshToken = () => localStorage.getItem(KEYS.REFRESH_TOKEN)
/** 清除 Token */
export const removeToken = () => {
localStorage.removeItem(KEYS.TOKEN)
localStorage.removeItem(KEYS.REFRESH_TOKEN)
}
/** 保存用户信息 */
export const saveUserInfo = (user) => {
localStorage.setItem(KEYS.USER_INFO, JSON.stringify(user))
}
/** 获取用户信息 */
export const getUserInfo = () => {
try {
return JSON.parse(localStorage.getItem(KEYS.USER_INFO))
} catch {
return null
}
}
/** 清除用户信息 */
export const removeUserInfo = () => {
localStorage.removeItem(KEYS.USER_INFO)
}
/** 清除所有管理端缓存 */
export const clearAll = () => {
removeToken()
removeUserInfo()
}