当前位置: 首页 > news >正文

vue中token的使用与统计实践

在 Vue.js 应用中,token 通常用于身份验证和授权(如 JWT),以下是关于 token 的使用和统计用量的常见实践:

1. Token 的使用

a. 存储 Token
  • LocalStorage / SessionStorage:将 token 存储在浏览器的 localStoragesessionStorage 中。
    localStorage.setItem('token', 'your-jwt-token');
    
  • Vuex 状态管理:将 token 保存在 Vuex store 中,方便组件间共享状态。
    const store = new Vuex.Store({state: {token: localStorage.getItem('token') || null},mutations: {setToken(state, token) {state.token = token;localStorage.setItem('token', token);}}
    });
    
b. 请求携带 Token
  • 在请求拦截器中自动添加 token 到 HTTP 请求头中:
    axios.interceptors.request.use(config => {const token = store.state.token;if (token) {config.headers['Authorization'] = `Bearer ${token}`;}return config;
    });
    
c. Token 过期处理
  • 解析 JWT 的 exp 字段判断是否过期:
    function isTokenExpired(token) {const payload = JSON.parse(atob(token.split('.')[1]));return Date.now() >= payload.exp * 1000;
    }
    

2. Token 使用量的统计

a. 后端统计
  • 每次用户发起请求时,后端可以记录 token 的使用次数及时间戳,并通过 API 提供统计数据。
b. 前端统计(可选)
  • 在每次发送请求时,前端也可以本地统计 token 的使用次数:
    let requestCount = 0;
    axios.interceptors.request.use(config => {requestCount++;console.log(`Token 已使用 ${requestCount}`);return config;
    });
    
c. 用户用量展示
  • 可以通过调用后端接口获取用户的 token 使用情况,并在 Vue 页面中展示:
    <template><div>本月已使用接口次数:{{ usageCount }}</div>
    </template><script>
    export default {data() {return {usageCount: 0};},mounted() {this.fetchUsage();},methods: {async fetchUsage() {const res = await axios.get('/api/user/usage');this.usageCount = res.data.count;}}
    };
    </script>
    

3. Token 安全建议

  • 避免明文传输:始终使用 HTTPS 加密通信。
  • 定期刷新 Token:配合 refresh token 实现无感刷新。
  • 清除 Token:用户登出时应清除 token:
    localStorage.removeItem('token');
    store.commit('setToken', null);
    
http://www.lryc.cn/news/584265.html

相关文章:

  • 机器学习11——支持向量机上
  • 快速合并多个CAD图形为单一PDF文档的方法
  • 机器学习之逻辑回归和k-means算法(六)
  • 机器学习:反向神经元传播公式推导
  • C#基础:Winform桌面开发中窗体之间的数据传递
  • 机器学习13——支持向量机下
  • Linux - firewall 防火墙
  • Spring MVC 1
  • C语言<数据结构-链表>
  • 基于Catboost算法的茶叶数据分析及价格预测系统的设计与实现
  • CH9121T电路及配置详解
  • 《Stata面板数据分析:数据检验、回归模型与诊断技术 - 以NLSW工资研究(公开数据)为例》
  • 时间显示 蓝桥云课Java
  • 数据分析中的拉链表解析
  • 整数反转(C++)
  • JDK的Closure闭包详解
  • x86汇编语言入门基础(三)汇编指令篇3 位移运算
  • expect 安装入门手册
  • window显示驱动开发—XR_BIAS 和 BltDXGI
  • 图书管理系统(完结版)
  • windows11桌面部分区域无法点击
  • Netron的基本使用介绍
  • Django+DRF 实战:自定义异常处理流程
  • QT数据交互全解析:JSON处理与HTTP通信
  • 原生微信小程序研发,如何对图片进行统一管理?
  • 记录今天学习Comfyui的感受
  • JDK 1.7 vs JDK 1.8
  • QT5使用cmakelists引入Qt5Xlsx库并使用
  • 公网 IP 不稳定?用多点 Ping 策略监控真实可达率
  • MyBatis集成Logback日志全攻略