function getJwtExpiration(token) {
try {
const base64Url = token.split('.')[1];
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
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) {
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.");
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?