登录态存在哪里
本文导航

登录态存在哪里
登录成功后,框架把令牌和用户资料拆开放。
| 位置 | 键 | 内容 |
|---|---|---|
| Cookie | authorized-token |
accessToken、过期时间、refreshToken |
| Cookie | multiple-tabs |
标记这个浏览器会话还算登录。浏览器完全关掉后消失 |
| localStorage | user-info |
头像、用户名、昵称、角色、权限、refreshToken、过期时间 |
| localStorage | user-permissions-cache |
/users/me/permissions 的结果,TTL 24 小时 |
Pinia useUserStore |
内存 | 上面这些的当前副本 |
读写都走 src/utils/auth.ts 的 getToken、setToken、removeToken,不要在页面里直接改 cookie。
令牌怎么带上
formatToken 得到 Bearer <token>。HTTP 拦截器对非白名单请求自动加 Authorization。白名单是路径里包含 /refresh-token 或 /login 的请求,避免刷新失败时死循环。
过期之后
响应拦截器看到 401,调用 useUserStoreHook().logOut():清 token、清动态路由、清多标签、回到登录页。并发的 401 只会登出一次,isLoggingOut 挡住重复跳转。
权限缓存过期或被清掉之后,按钮会按空权限计算,即使令牌还有效。重新登录,或调用 store 的 fetchAndCachePermissions(),才会再请求 /api/v1/users/me/permissions。
超管这份接口返回 ["*:*:*"]。hasPerms 看到这个通配就放行。
评论
加载评论中…