首页 > 其他分享 >Js 获取token 过期时间

Js 获取token 过期时间

时间:2024-12-19 14:43:21浏览次数:7  
标签:const 过期 Js token expiration exp console payload

function getJwtExpiration(token) {
    try {
        const base64Url = token.split('.')[1]; // 提取 payload 部分
        const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); // Base64Url 转换为 Base64
        const jsonPayload = decodeURIComponent(
            atob(base64)
                .split('')
                .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
                .join('')
        );
 
        const payload = JSON.parse(jsonPayload);

        if (payload.exp) {
            // `exp` 通常是 UNIX 时间戳(秒)
            const expirationDate = new Date(payload.exp * 1000); // 转换为毫秒
            return expirationDate;
        } else {
            throw new Error("Token does not have an 'exp' field");
        }
    } catch (error) {
        console.error('Error parsing JWT:', error);
        return null;
    }
}
 
// 示例用法
const jwtToken = "eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGR w";
const expiration = getJwtExpiration(jwtToken);
 
if (expiration) {
    console.log(`Token expires at: ${expiration}`);
} else {
    console.log("Failed to retrieve expiration date.");
}

标签:const,过期,Js,token,expiration,exp,console,payload
From: https://www.cnblogs.com/JosenEarth/p/18617213

相关文章

  • JSP Session
    HTTP是无状态协议,这意味着每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息。有三种方法来维持客户端与服务器的会话:Cookies网络服务器可以指定一个唯一的sessionID作为cookie来代表每个客户端,用来识别这个客户端接下来的请......
  • JackJson的@JsonAutoDetect注解
    1、@JsonAutoDetect(作用在类上):自动检测fieldVisibility:字段的可见级别;getterVisibility:getter方法的可见级别;setterVisibility:setter方法的可见级别。ANY:任何级别的字段都可以自动识别NONE:任何字段都不可以自动识别NON_PRIVATE:非private修饰的字段可以自动识别PROTECTED_OR......
  • pdfjs 报错提示Failed to load module script
    参考文章:pdfjs报错提示Failedtoloadmodulescript[JavaScript]MIMEtype异常在服务器好不容易配好nginx转发,jar包,静态资源等,访问网站一切ok,结果打开pdf时,无法预览:F12看了下,接口返回正常啊,说明接口没问题,接着看控制台,oh,问题在这:Failedtoloadmodulescript:Expecte......
  • JS中把其它类型转成字符串的方法及规则是什么?
    在JavaScript中,有多种方法可以将其他类型转换为字符串。以下是一些常见的方法和规则:使用toString()方法:几乎所有的JavaScript对象都继承了toString()方法,该方法返回一个表示该对象的字符串。对于原始类型(如Number和Boolean),此方法会返回原始值的文本表示形式。对于数组和对象,默......
  • JS中把其它类型转成数字的方法及规则是什么?
    在JavaScript中,可以使用多种方式将其他类型转换为数字。以下是一些常见的方法和规则:Number()函数:Number()函数可以用来将任何类型的数据转换为数字。其规则如下:如果参数是布尔值,true转换为1,false转换为0。如果参数是数字,则返回该数字(无转换)。如果参数是null,返回0......
  • JS中把其它类型转成布尔的方法及规则是什么?
    在JavaScript中,可以使用Boolean()函数将其他类型转换为布尔值。此外,JavaScript中的类型转换也遵循一定的自动转换规则,特别是在条件判断等场景中。使用Boolean()函数Boolean()函数可以将任何类型的值转换为布尔值。以下是一些示例:console.log(Boolean(1));//trueconsol......
  • ThreeJs-07操控物体实现家具编辑器
    本章节实现效果,通过gui快速添加场景,家具,并且可以快速设置家具实现一个编辑器效果一.基础设置与物体添加列表用之前做过的一个案例来改首先不要这个模型,然后换个背景颜色,并且添加一个网格辅助器1.1添加场景先往事件对象里面添加一个函数,到时候点击就会调用这个函数,而这个......
  • JS的原型和原型链浅析
    原型与原型链在JavaScript中,原型(Prototype)是对象的一种特殊类型,它是所有对象共享属性和方法的机制。每一个JavaScript对象都与一个原型对象相关联,并且通过原型链来继承属性和方法。1.原型(Prototype)每个对象在创建时都会有一个内部属性[[Prototype]],它指向该对象的......
  • VOLTE网络中SIP消息的registration-token参数
    在VOLTE网络中,通信业务标识(Feature-CapabilityIndicator,或者字面翻译成“特性能力指示符”)是经常出现在SIPHeader中的一个参数,其取值和说明可参见3GPPTS24.237。这里简要介绍其中之一的g.3gpp.registration-token(在SIPHeader的Contact域出现时也被称作mediafeaturetag[媒......
  • node.js的简单示例
    Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,用于方便地构建快速、可扩展的网络应用。下面是一个简单的Node.js示例,它创建了一个简单的HTTP服务器,当访问服务器时,它会响应“HelloWorld”//引入Node.js的HTTP模块consthttp=require('http');//创建HTTP服务......