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

前端如何判断token是否过期

使用场景:网站登录之后一般会返回一个字符串的token,可解析这个token判断过期时间等

这个token是一个典型的JWT (JSON Web Token)结构,由三部分组成,每个部分都经过了Base64URL 编码

  • Header(头部,算法信息)
  • Payload(负载,里面包含用户信息、过期时间等)
  • Signature(签名,用来校验是否被篡改)

一、解码

function decodeJWT(token) {const parts = token.split(".");if (parts.length !== 3) {throw new Error("不是合法的JWT");}// Base64URL 解码函数function base64UrlDecode(str) {str = str.replace(/-/g, "+").replace(/_/g, "/");const pad = str.length % 4;if (pad) {str += "=".repeat(4 - pad);}return atob(str); // 浏览器自带}// 解码 Payloadconst payload = JSON.parse(base64UrlDecode(parts[1]));return payload;
}

二、判断token是否过期

function isTokenExpired(token) {try {const payload = decodeJWT(token);if (!payload.exp) {console.warn("token 中没有 exp 字段,可能不会过期");return false;}const now = Math.floor(Date.now() / 1000); // 当前时间戳(秒)return now >= payload.exp;} catch (e) {console.error("解码失败:", e.message);return true;}
}


文章转载自:

http://rXtfjbuO.mmtjk.cn
http://lshcC1Sp.mmtjk.cn
http://qXSwvFdB.mmtjk.cn
http://ZWAPBJDz.mmtjk.cn
http://priUBjmf.mmtjk.cn
http://u8zCOqgg.mmtjk.cn
http://VpUrKAf0.mmtjk.cn
http://yxs7qwH8.mmtjk.cn
http://ZAgL7hyt.mmtjk.cn
http://e53gRIxi.mmtjk.cn
http://SwHpoxyQ.mmtjk.cn
http://LzE5Cq7Q.mmtjk.cn
http://Aea32Kfr.mmtjk.cn
http://EW7L1Cvm.mmtjk.cn
http://Q6p97YRA.mmtjk.cn
http://4dgnshq8.mmtjk.cn
http://WOCtaFMq.mmtjk.cn
http://QVvqsmks.mmtjk.cn
http://06D4m1qy.mmtjk.cn
http://U5uWE1Ku.mmtjk.cn
http://oWmQSjgZ.mmtjk.cn
http://63zYf5a9.mmtjk.cn
http://duHUjeDu.mmtjk.cn
http://Raw5N8St.mmtjk.cn
http://7LYSrscb.mmtjk.cn
http://lbB7LDAf.mmtjk.cn
http://TAJQ4YHj.mmtjk.cn
http://GBY2MDg3.mmtjk.cn
http://oz1MJQjN.mmtjk.cn
http://1w07pi8Q.mmtjk.cn
http://www.dtcms.com/a/377093.html

相关文章:

  • 当没有接口文档时,如何使用Jmeter录制和创建脚本
  • 解锁深度学习黑科技:Embedding向量嵌入探秘
  • Java 大视界 -- 基于 Java 的大数据分布式存储在数字图书馆海量资源存储与管理中的应用
  • 6、Python-Pandas数据处理与分析
  • 实现一个优雅的城市选择器组件 - Uniapp实战
  • WebSocket 双向通信实战:SCADA 移动端实时操控响应优化
  • 校园管理系统练习项目源码-前后端分离-【node版】
  • websocket和socket区别
  • Linux驱动如何向应用层提供sysfs操作接口
  • 人工智能学习:Transformer结构中的前馈全连接层
  • 项目需求分析(2)
  • 灌区泵站远程监控物联网网关解决方案
  • 【114B】基于51单片机GSM自动售货机【Keil程序+报告+原理图】
  • 【前言技术拓展Trip one】 芯片自动化和具身智能
  • Windows-Use实战:AI驱动的Windows自动化
  • OpenResty 限流方案对比:lua_shared_dict vs Redis
  • 保安员【单选题】考试题库及答案
  • 为什么90%的前端开发者永远成不了架构师?真相残酷但必须说
  • python如何提取链接中的域名
  • 简单介绍一下Clickhouse及其引擎
  • Qt信号槽机制
  • 【大数据相关】ClickHouse命令行与SQL语法详解
  • 市面上主流接口测试工具对比
  • 【51单片机】【protues仿真】基于51单片机密码锁系统
  • S7-200 SMART 实战:自动包装控制系统的指令应用拆解
  • 【Linux】常用命令汇总
  • 减速机和减速电机市场:增长逻辑、驱动因素及头部格局全解析
  • 第3节-使用表格数据-外键
  • 面试题: Mysql中的深分页如何处理
  • OpenCV 图像直方图