请描述你在前端项目里管理已登录用户数据的做法?
考察说明
考查前端登录态管理方案及安全性考量。
回答思路
- 【回答框架 1】登录用户信息通常存储在内存、localStorage 或 cookie 中。内存适合单页应用但刷新丢失;localStorage 持久但需注意 XSS 风险;cookie 可设置 HttpOnly 提升安全,并配合后端会话。
- 【回答框架 2】常用方式是将 token 放在请求拦截器(如 axios)中自动附加到 Authorization 头,用户基本信息放在内存或状态管理库中,避免每次从存储读取。
- 【回答框架 3】还需考虑安全措施:对存储内容进行必要加密或使用 HttpOnly cookie,限制敏感信息暴露;同时要处理登出时清理存储和状态,以及 token 过期时跳转登录。
- 【回答框架 4】对于多标签页,可监听 storage 事件同步登录状态,或采用统一的状态管理机制配合刷新令牌刷新。
- 【关键点 1】localStorage 持久但需防 XSS,cookie 可加 HttpOnly 更安全。
- 【关键点 2】请求拦截自动附加 token 是常见做法。
- 【关键点 3】登出需清理存储和状态并处理过期。
- 【关键点 4】多标签页用 storage 事件同步状态。
- 【易错点 1】直接使用 localStorage 存储明文 token 且未防护 XSS 会泄露。
- 【易错点 2】忽略 token 过期导致请求失效后不处理,用户体验差。
- 【易错点 3】在多个标签页未同步登录状态,造成数据不一致。