JWT 解码工具

JWT 解码工具

  • 页面index.html
  • 脚本
  • 运行效果如下:

页面index.html

<!DOCTYPE html><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Keycloak JWT 解码工具</title><scriptsrc="https://cdn.tailwindcss.com"></script><linkrel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"><scriptsrc="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/8.0.20/jsrsasign-all-min.js"></script></head><bodyclass="bg-gradient-to-br from-blue-50 to-indigo-100 min-h-screen"><divclass="container mx-auto px-4 py-8 max-w-4xl"><headerclass="text-center mb-12"><h1class="text-4xl font-bold text-gray-800 mb-2">Keycloak JWT 解码工具</h1><pclass="text-gray-600">解码和验证 Keycloak 生成的 JWT 令牌</p></header><main><divclass="bg-white rounded-xl shadow-lg p-6 mb-8"><divclass="mb-6"><labelfor="jwt-token"class="block text-sm font-medium text-gray-700 mb-2"><iclass="fas fa-key mr-2"></i>JWT 令牌</label><textareaid="jwt-token"rows="4"class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"placeholder="请输入完整的 JWT 令牌..."></textarea></div><divclass="flex flex-wrap gap-4 mb-6"><buttononclick="decodeJWT()"class="flex-1 bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-6 rounded-lg transition transform hover:scale-105"><iclass="fas fa-unlock-alt mr-2"></i>解码令牌</button><buttononclick="clearFields()"class="flex-1 bg-gray-500 hover:bg-gray-600 text-white font-semibold py-3 px-6 rounded-lg transition"><iclass="fas fa-trash-alt mr-2"></i>清空</button></div></div><divid="result-section"class="hidden"><divclass="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"><divclass="bg-white rounded-xl shadow-lg p-6"><h2class="text-xl font-bold text-gray-800 mb-4 flex items-center"><iclass="fas fa-id-card mr-2 text-blue-600"></i>头部信息(Header)</h2><preid="header-output"class="bg-gray-50 p-4 rounded-lg overflow-x-auto text-sm"></pre></div><divclass="bg-white rounded-xl shadow-lg p-6"><h2class="text-xl font-bold text-gray-800 mb-4 flex items-center"><iclass="fas fa-user-circle mr-2 text-green-600"></i>负载信息(Payload)</h2><preid="payload-output"class="bg-gray-50 p-4 rounded-lg overflow-x-auto text-sm"></pre></div></div><divclass="bg-white rounded-xl shadow-lg p-6 mb-8"><h2class="text-xl font-bold text-gray-800 mb-4 flex items-center"><iclass="fas fa-shield-alt mr-2 text-purple-600"></i>令牌信息</h2><divclass="grid grid-cols-1 md:grid-cols-3 gap-4"><divclass="bg-blue-50 p-4 rounded-lg"><pclass="text-sm text-gray-600">颁发者(iss)</p><pid="issuer"class="font-semibold text-gray-800 truncate"></p></div><divclass="bg-green-50 p-4 rounded-lg"><pclass="text-sm text-gray-600">受众(aud)</p><pid="audience"class="font-semibold text-gray-800 truncate"></p></div><divclass="bg-yellow-50 p-4 rounded-lg"><pclass="text-sm text-gray-600">过期时间(exp)</p><pid="expires-at"class="font-semibold text-gray-800"></p></div></div></div><divclass="bg-white rounded-xl shadow-lg p-6"><h2class="text-xl font-bold text-gray-800 mb-4 flex items-center"><iclass="fas fa-check-circle mr-2 text-red-600"></i>验证状态</h2><divid="validation-result"class="p-4 rounded-lg"><pclass="text-center text-gray-600">请先解码令牌以查看验证结果</p></div></div></div></main><footerclass="mt-12 text-center text-gray-600 text-sm"><p>©2026Keycloak JWT 解码工具 - 专为 Keycloak 令牌调试而设计</p></footer></div><scriptsrc="script.js"></script></body></html>

脚本

/** * JWT 解码工具 JavaScript 实现 */// 解码 JWT 令牌functiondecodeJWT(){constjwtToken=document.getElementById('jwt-token').value.trim();if(!jwtToken){alert('请输入有效的 JWT 令牌');return;}try{// 分割 JWT 令牌constparts=jwtToken.split('.');if(parts.length!==3){thrownewError('无效的 JWT 令牌格式');}// 解码头部和负载constheader=JSON.parse(atob(parts[0]));constpayload=JSON.parse(atob(parts[1].replace(/-/g,'+').replace(/_/g,'/')));// 显示解码结果displayDecodedJWT(header,payload);// 验证令牌validateToken(payload);// 显示结果区域document.getElementById('result-section').classList.remove('hidden');}catch(error){alert(`解码失败:${error.message}`);}}// 显示解码后的 JWT 信息functiondisplayDecodedJWT(header,payload){// 显示头部信息document.getElementById('header-output').textContent=JSON.stringify(header,null,2);// 显示负载信息document.getElementById('payload-output').textContent=JSON.stringify(payload,null,2);// 显示令牌信息document.getElementById('issuer').textContent=payload.iss||'N/A';document.getElementById('audience').textContent=Array.isArray(payload.aud)?payload.aud.join(', '):(payload.aud||'N/A');// 格式化过期时间if(payload.exp){constexpDate=newDate(payload.exp*1000);document.getElementById('expires-at').textContent=expDate.toLocaleString('zh-CN');}else{document.getElementById('expires-at').textContent='N/A';}}// 验证令牌functionvalidateToken(payload){constnow=Math.floor(Date.now()/1000);constresultElement=document.getElementById('validation-result');// 检查是否过期if(payload.exp&&payload.exp<now){resultElement.innerHTML=`<div class="text-center"> <i class="fas fa-times-circle text-red-500 text-3xl mb-2"></i> <p class="font-semibold text-red-600">令牌已过期</p> <p class="text-sm text-gray-600 mt-1">过期时间:${newDate(payload.exp*1000).toLocaleString('zh-CN')}</p> </div>`;resultElement.className='bg-red-50 border-l-4 border-red-500 p-4 rounded-lg';return;}// 检查是否生效if(payload.nbf&&payload.nbf>now){resultElement.innerHTML=`<div class="text-center"> <i class="fas fa-clock text-yellow-500 text-3xl mb-2"></i> <p class="font-semibold text-yellow-600">令牌尚未生效</p> <p class="text-sm text-gray-600 mt-1">生效时间:${newDate(payload.nbf*1000).toLocaleString('zh-CN')}</p> </div>`;resultElement.className='bg-yellow-50 border-l-4 border-yellow-500 p-4 rounded-lg';return;}// 令牌有效resultElement.innerHTML=`<div class="text-center"> <i class="fas fa-check-circle text-green-500 text-3xl mb-2"></i> <p class="font-semibold text-green-600">令牌有效</p> <p class="text-sm text-gray-600 mt-1">${payload.exp?`将在${Math.floor((payload.exp-now)/60)}分钟后过期`:'无过期时间'}</p> </div>`;resultElement.className='bg-green-50 border-l-4 border-green-500 p-4 rounded-lg';}// 清空输入和结果functionclearFields(){document.getElementById('jwt-token').value='';document.getElementById('result-section').classList.add('hidden');document.getElementById('validation-result').innerHTML='<p class="text-center text-gray-600">请先解码令牌以查看验证结果</p>';document.getElementById('validation-result').className='';}

运行效果如下:

运行效果如下:

测试TOKEN
token如下:

eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJNVWNPLWJ1QVY4SWxrWUJNSUlwM3pldUIxYU9iUl94Nm9FZ256NmwyYlowIn0.eyJleHAiOjE3NjkzMDUxMDEsImlhdCI6MTc2OTMwNDgwMCwianRpIjoiNDVhNjBhYjQtOTU1OS00Yjg4LWEzMTAtNDZmODM2YWJiN2Y0IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlbW9mb3IuY29tLmNuL2F1dGgvcmVhbG1zL2tleWNsb2FrLWxlYXJuIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImEwODhlMjcyLThhNGUtNGI2Yi1hMjI0LWM3NjlhODYzNjRjYyIsInR5cCI6IkJlYXJlciIsImF6cCI6ImNoYXB0ZXItMSIsInNlc3Npb25fc3RhdGUiOiJlMDI5YzhkMy03YzA2LTRhMjItOGQyMC1jMjZmY2E2ZjU0MTEiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX0sImNoYXB0ZXItMSI6eyJyb2xlcyI6WyJ1c2VyIl19fSwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoidXNlciJ9.XTN-kpc2nGjv6u91M6ONXpk8Nn1VYltaN5MhNOGZn-tXJd4DoCo-ZdpteHGznFF3Vfl3ivMMPeLVZl-Jd6kZNDK4q5WuM1sqCO8F3HM8MRS5iGOQdRhMR2rAb4FWYsonl4mE7w1Znbvr5OsLUoxec3AUEXChnp_2c36xlAPsDwXPdVqR_5SX3CKPqFLI7Ixy90RiMpc8S72wc2ves6XkIX9lLtzOjtKmRsVAv4RKmkkTT-h9_ifMTZNp9jVhf33LjgEjn17JiTVKVEiJj8Xr_48_2ClRrxf7jZ4dfwBmldiZqyzOst9Ww_DLxZHNcJxIFIOFxMIIW3bU0nXiOGZXQg

最终解码效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的电动车头盔检测系统

目录 电动车头盔检测系统的背景与需求核心技术框架关键实现步骤性能优化方向典型应用场景挑战与解决方案 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 电动车头盔检测系统的背景与需求 电动车头盔检测系统通过计算机视觉技术自动识…

keycloak测试11.0.2 for windows

keycloak测试11.0.2PasswordClient credentialsIntrospectionAuthorization codePassword 应用于后端处理: set KEYCLOAK_HOSThttp://keycloak.demofor.com.cn/ set KEYCLOAK_REALMkeycloak-learn set CLIENT_IDchapter-1 set CLIENT_SECRET149240f3-31c6-46dc-bab4-0b53c0ee1…

基于深度学习的番茄检测系统

目录 深度学习番茄检测系统概述核心功能与技术系统架构示例性能优化方向应用案例 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 深度学习番茄检测系统概述 深度学习番茄检测系统利用计算机视觉和深度学习技术&#xff0c;自动识别、…

基于深度学习的肺部病变检测系统

目录 深度学习在肺部病变检测中的应用系统核心组件关键技术优势典型应用场景挑战与改进方向 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 深度学习在肺部病变检测中的应用 深度学习技术通过卷积神经网络&#xff08;CNN&#xff09…

得到节点Device (P2P0)的子节点Device (S1F0)的PCI地址

得到节点Device (P2P0)的子节点Device (S1F0)的PCI地址第0部分&#xff1a;dsdt.dsl:6096: Device (P2P0) dsdt.dsl:6306: Device (S1F0)Device (S1F0){Name (_ADR, Zero) // _ADR: AddressName (_SUN, 0x20) // _SUN: Slot User NumberOperationR…

导师严选2026继续教育一键生成论文工具TOP9:学术写作全维度测评

导师严选2026继续教育一键生成论文工具TOP9&#xff1a;学术写作全维度测评 2026年继续教育论文工具测评&#xff1a;精准筛选&#xff0c;助力高效写作 在继续教育领域&#xff0c;论文写作已成为许多学员必须面对的挑战。无论是课程结业、职称评审还是学术深造&#xff0c;…

开源DTU全套方案详解:原理图设计、PCB布局、BOM清单、上位机源码及Keil嵌入式源码集成

开源DTU全套方案 原理图PCB BOM清单 上位机源码 keil嵌入式源码最近在折腾工业物联网网关设备&#xff0c;发现市面上的DTU价格从几百到上万不等。作为野生电子工程师&#xff0c;这能忍&#xff1f;果断翻出吃灰的立创EDA&#xff0c;撸起袖子自己干。今天就把这套开源DTU方案…

基于MATLAB的TERCOM算法实现与优化

一、TERCOM算法核心流程 TERCOM&#xff08;地形轮廓匹配&#xff09;算法在MATLAB中的实现可分为以下步骤&#xff1a;地形数据预处理加载数字高程模型&#xff08;DEM&#xff09;&#xff0c;生成高斯加权窗口构建地形特征矩阵&#xff08;高度、粗糙度、坡度等&#xff09;…

小红书高清/4K视频下载指南(2026最新实测有效)

小红书近期更新后&#xff0c;直接获取高质量视频源确实变得更加困难。但别担心&#xff01;经过实际测试&#xff0c;目前仍有两种稳定高效的方法&#xff0c;可帮助你轻松下载 1080p 甚至 4K 超清视频——只需借助以下工具即可实现。 &#x1f4cc; 关键前提&#xff1a;必须…

电子标签拣货系统:高效、智能的物流分拣解决方案

电子标签拣货系统电子标签拣货系统的核心是让货架上的指示灯告诉拣货员"往这儿拿"。想象一下仓库里几百个货位同时亮灯闪烁的场景&#xff0c;像不像科幻片里的数据流动特效&#xff1f;这套系统背后藏着几个关键技术点&#xff0c;咱们边写代码边唠。硬件驱动是地基…

这群程序员疯了,不给钱的活都干

这群程序员疯了,不给钱的活都干昨天下午,【程序员接单群】里的一条需求,炸出了一群 “疯魔” 的程序员。 没有报价拉扯,没有工期讨价还价,甚至连一句 “有报酬吗” 都没人问 —— 平时谈项目先聊预算的程序员们,…

珲春推荐一下烤肉哪家正宗

珲春正宗烤肉之延炭乳酸菌烤肉推荐在珲春这座充满美食魅力的城市&#xff0c;烤肉可谓是当地饮食文化的一张亮丽名片。众多食客在寻觅正宗烤肉的过程中&#xff0c;常常会有诸多疑问。今天&#xff0c;就为大家推荐一家在珲春相当正宗且独具特色的烤肉店——延炭乳酸菌烤肉。主…

珲春推荐烤肉哪家无广

珲春无广烤肉推荐&#xff1a;延炭乳酸菌烤肉 在珲春这座美食之城&#xff0c;烤肉是当地极具特色的美食之一。若想寻找一家无广且高品质的烤肉店&#xff0c;延炭乳酸菌烤肉是不可错过的选择。 主打健康概念 延炭乳酸菌烤肉以其独特的健康理念脱颖而出。店内用乳酸菌腌制肉类…

MATLAB算法仿真:无人机系统三维地图路径规划 - 多种算法对比(包括BA、CPFIBA和D...

Matlab算法仿真&#xff0c;无人机系统三维地图路径规划。 多种算法对比&#xff1a;BA是蝙蝠算法&#xff0c;CPFIBA和DEBA是改进的蝙蝠算法 注&#xff1a;只保证结果跟下图一样&#xff0c;不对代码解释教学&#xff0c;代码里面有部分解释&#xff01; 这个代码比较大&…

基于Matlab-YALMIP-CPLEX的微网优化调度:‘总费用最低‘的蓄电池与市场购售电功...

基于yalmipcplex的微网优化调度 程序&#xff1a;Matlab-yalmip-cplex 调度优化 蓄电池 市场购售电 功率平衡 目标函数&#xff1a;总费用最低 【温馨提示】用cplex跑不了不是程序的问题哦&#xff0c;是求解器没有安装好&#xff0c;建议在matlab上安装版本相匹配的求解器 微…

贾子战略 - 军事理论体系的深度解构与时代价值洞察

认知、行动与价值的统一&#xff1a;贾子战略-军事理论体系解构及其现代意义 摘要&#xff1a; 贾子战略-军事理论体系以“战略五定律”为认知框架、“军事五定律”为行动准则、“御敌于国门之外”为价值导向&#xff0c;构建了“认知—行动—价值”的三维逻辑闭环。该体系融合…

揭秘优质大牌美妆小样供应链,这几点是关键,服务好的大牌美妆小样供应链哪个好精选国内优质品牌榜单

在消费分级与体验经济并行的当下,大牌美妆小样已从单纯的赠品演变为一个独立的、潜力巨大的市场赛道。对于美妆集合店、电商主播、社群团购主乃至跨境贸易商而言,稳定、正品、高性价比的小样供应链,不仅是吸引流量、…

Vmware安装Windows11

1、开始安装时报错,该电脑必须支持TPM 2.0 2、关闭虚拟机,在虚拟机设置中,选项------访问控制------加密,设置一个密码 3、硬件------添加------可信任模块------完成 4、再次开启此虚拟机,就可以进入正常安装…

vc++达成控制NRP8S功率计读取功率(附带源码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2026年国内质量好的布袋除尘器制造厂哪里有卖,通风蝶阀/除尘器布袋/星型卸料器/除尘器骨架,布袋除尘器制造厂怎么选

行业洞察:布袋除尘器市场格局与采购指南 随着环保政策持续收紧,工业粉尘治理需求激增,布袋除尘器作为核心设备,其市场集中度与技术差异化显著提升。据统计,2025年国内布袋除尘器市场规模突破280亿元,年复合增长率…