JSON Web Token (JWT)入门教程
JSON Web Token, 其缩写为JWT, 是当下最为流行的跨域认证解决方案, 本文会对它的原理以及用法予以介绍。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、于服务器验证得以通过之后, 于当前对话的括号之内, 去保存诸如用户角色、登录时间等这般的相关数据。3、服务器向用户返回一个 写入用户的 。4、用户随后的每一次请求都会通过 将 传回服务器。5、服务器收到找到前期保存的数据由此得知用户的身份。这种模式存在的问题是, 其扩展性并非良好状态。对于单机而言, 自然不存在问题。然而要是面对服务器集群, 或者是跨域的服务导向架构时, 便会有数据共享方面的要求, 即每一台服务器都需要具备能够读取的能力。比方说, A网站跟B网站属于同一家公司的关联服务, 当下有要求哈, 用户只要于其中一个网站进行登录, 然后再去访问另一个网站时就会自动登录, 请问要怎样达成呢?有一种解决方案, 是进行数据持久化。将数据写到数据库, 或者写入其他持久层。各类服务在收到请求之后, 都会向持久层去请求数据。这种方案具备的优点是架构清晰, 存在的缺点是工程量相对比较大。另外, 如果持久层出现故障无法正常运行, 就会导致单点失败的情况发生。还有一种不一样的方案, 那就是服务器干脆不再去留存数据了全部的数据都留存于客户端, 每一次发起请求的时候都要发送回到服务器。JSON网络令牌也就是遵循这种方案的一个典型代表。二、JWT 的原理JWT的原理为, 在服务器完成认证之后, 会生成出一个JSON对象, 随后将其发回给用户, 情形类似如下这般。姓名: 张三,角色: 管理员,到期时间: 2018年7月1日0点0分之后, 当用户同服务端进行通信之际, 均需发回此 JSON 对象。服务器完全凭借这个对象来认定用户身份。为避免用户对数据进行篡改, 服务器于生成这个对象之时, 会添加上签名(详见后文)。服务器不会保存任何数据, 这意味着, 服务器呈现为无状态, 进而比较易于实现扩展。三、JWT 的数据结构实际的 JWT 大概就像下面这样。它是个很长的字符串, 其经过中间用点(.)来分隔从而形成三个部分, 要注意, JWT内部不存在换行情况, 这里仅仅是为了使之便于展示, 所以才把它写成了几行。JWT 的三个部分依次如下。(头部)(负载)(签名)写成一行就是下面的样子。..下面依次介绍这三个部分。3.1其一, 部分它是一个 JSON 对象, 其二, 该 JSON 对象能够描述 JWT 的元数据, 其三, 其呈现出的态样常常是如下这般。alg: HS256,typ: JWT位于上面的代码里头, alg属性所表达的意思是签名的算法, 其默认状况是HMAC, 具体写成HS256typ属性所指的是这个令牌的类型, 对于JWT令牌而言, 统一将其写成JWT。首先, 把前文所提及的算法具体内容后面可见运用过来, 接着, 把上面的那个 JSON 对象 , 转变成为字符串。3.2部分是一个 JSON 对象, 它用于存放实际需要传递的数据, JWT 规定了 7 个官方字段, 可供选用。iss ()签发人exp ( time)过期时间sub ()主题aud ()受众nbf (Not )生效时间iat ( At)签发时间jti (JWT ID)编号这个部分, 除了官方字段之外, 你能够定义私有字段, 这儿接下来就是一个例子, 是这样的。sub: ,name: John Doe,admin: true留意, JWT 默认并非加密状态, 为可被任何人读取到的, 因而千万别将秘密信息放置于这个部分句号。这个 JSON 对象也要使用 算法转成字符串。3.3部分是对前两部分的签名防止数据篡改。首先, 要指定一个密钥, 此密钥唯有服务器知晓, 绝不可泄漏给用户, 接着, 运用里面所指定的签名算法默认是HMAC, 依据下面的公式来产生签名。(() . (),)算出签名之后, 将 、、 这三个部分, 拼合成一个字符串, 每一个部分之间, 用“点”.进行分隔, 如此这般便能够返回给用户。3.4前面讲述过, 而串型化的算法是这样的。此算法跟另外一种算法在大体上相类似, 不过存有一些细微的差异。JWT身为一个令牌token, 于某些场合有可能会被放置到URL像是 /?tokenxxx当中。存在三个字符 、/ 以及 , 在URL里面具备特殊含义, 因而要被替换掉: 被省略, 替换为 -, / 替换成 _。这便是算法。四、JWT 的使用方式从服务器返回的 JWT 被客户端收到后, 能够储存在其中, 也能够储存在。在此之后, 客户端每一次跟服务器进行通信的时候, 都需要带上这个 JWT。你能够把它放置在里面进行自动发送的, 然而这样做是不能够实现跨域的, 所以更为妥当的做法是将其放置在 HTTP 请求的头信息字段当中。:有另外一种做法, 当处于跨域的情形时, JWT会被放置在POST请求的数据体当中。五、JWT 的几个特点(1)JWT 起初设定为不进行加密操作, 然而它具备加密的可能性。当生成初始的 Token 之后, 能够利用密钥再次实施加密行为。(2)JWT 不加密的情况下不能将秘密数据写入 JWT。(3)JWT 不但能够被用于认证, 还能够被用于交换信息, 若能对 JWT 进行有效使用, 那么就可以使得服务器查询数据库的次数得以降低。(4)JWT极显著的弊端在于, 因服务器不为状态予以留存, 所以于使用进程里难以将某个令牌废止, 或者对令牌权限加以变更, 换句话讲, 唯有自JWT加以签发之后, 在其到期之前便始终会长久实效除非服务器去部署附加的逻辑。(5)JWT 自身含有认证方面讯息, 一旦出现泄露情况, 随便哪个人都能够获取该令牌的全部权限。为了降低被盗用的可能性, JWT 有效期应设定得相对短些。对于某些较为重要的权限, 使用之际应当再度对用户开展认证。(6)为了达成减少盗用的目的, JWT不应当采用HTTP协议以明码的方式进行传输, 而是需要运用HTTPS协议来实施传输。

相关新闻

Linux Devfreq 深度解析:GPU/DDR/ISP外设动态调频、架构原理、与CPUFreq区别、实操调优

Linux Devfreq 深度解析:GPU/DDR/ISP外设动态调频、架构原理、与CPUFreq区别、实操调优

专栏系列位置:外设功耗管理 第五篇 系列前置回顾 本专栏已构建完整CPU核心功耗体系: CPU架构+三级缓存(硬件性能基础) CPUIdle C-State(CPU空闲休眠) Thermal温控系统(高温保护降频) CPUFreq/DVFS/OPP(CPU运行时调频调压) 前面四篇只覆盖了CPU。 但手机、嵌入式SO…

2026/11/13 16:33:23 阅读更多 →
web前端开发前景分析

web前端开发前景分析

一、市场需求持续扩大1.数字化转型驱动需求金融行业、医疗行业、教育等行业加快进行线上化, 企业对于用户体验的要求有所提升, 前端身为用户交互的关键环节, 人才方面的缺口十分显著 , 2025年的时候Web前端岗位的增速达到了214%, 每天的岗位缺口超过40万。随着需求急剧增长, 跨…

2026/10/25 3:05:16 阅读更多 →
自托管文件处理 WebUI,一站式完成格式转换、OCR 和语音转文字

自托管文件处理 WebUI,一站式完成格式转换、OCR 和语音转文字

某特定的File, 它属于那种自托管的, 并且是基于浏览器的, 具备多功能的文件处理工具。其核心思路呈现出相当直接的状态: 要将众多的、诸如数十种知名命令行工具, 以及诸多的库, 予以封装, 使其进入一个一体化的、直观的、深色主题的Web界面之中。无需用户记住任何命令, 通过打开…

2026/10/30 9:10:43 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻