百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

深入浅出之JWT(JSON Web Token)

liuian 2025-05-22 11:44 31 浏览

什么是JWT?

JWT是JSON Web Token的缩写,它是一种开源标准(RFC 7519),用来定义通信双方如何安全地交换信息的格式。

本身定义比较简单,结合实践经验,我总结了几点能够更好地帮助理解什么是JWT。

重点

  • JWT之所以叫JSON Web Token,是因为其头部和载荷在编码之前都是JSON格式的数据;
  • JWT是一种标准,它有很多的实现方案,比如jwt-auth,专门为php框架laravel打造,java玩家可以看下java-jwt;
  • JWT规定以JSON的格式传递信息,负载payload的数据格式是JSON的,通常使用base64编码;
  • JWT是自包含的,Token本身携带了验证信息,不需要借助其他工具就可以知道一个Token是否有效,以及载荷信息;
  • JWT的某些实现比如黑名单机制、Token刷新等增强功能,可能也需要借助其他工具,但是这并不违背自包含特性。

JWT的结构

上图可以直观的看出JWT的结构,三种颜色代表三个部分,头部、载荷、签名

头部

头部本身是JSON格式的,注意这里说的是编码之前的格式。头部包括两个字段,token的类型和加密算法。注意这里说的加密算法是签名的加密算法,不是头部的加密算法,也不是载荷的加密算法。实际上头部并没有经过加密,只是通过base64编码成字符串。

载荷

载荷也是JSON格式的,经过base64编码成字符串。上图例子中可以看到有sub,name,iat三个字段,实际上你可以放更多的信息,只要你需要,前提是JSON格式。

下面这些字段是标准定一个的字段,用来确保jwt有效工作的。

  • iss

Issuer的简写,代表token的颁发者。

  • sub

Subject的简写,代表token的主题。

  • aud

Audience的简写,代表token的接收目标。

  • exp

Expiration Time的简写,代表token的过期时间,时间戳格式。

  • nbf

Not Before的简写,代表token在这个时间之前不能被处理,主要是纠正服务器时间偏差。

  • iat

Issued At的简写,代表token的颁发时间。

  • jti

JWT ID的简写,代表token的id,通常当不同用户认证的时候,他们的token的jti是不同的。

以上字段都是RFC 7519标准确定的字段,通常由具体的实现框架来处理,具体的使用者不需要关心。

注意,除了以上标准定义的字段,用户可以自由添加需要的信息,通常我们会把全局的、经常使用的、安全要求不高的信息写入载荷,比如用户ID、用户名等信息。

JWT认证流程

  1. 用户使用账号和密码登录,调用后端登录接口;
  2. 后端登录程序生成jwt(注意这里小写指的是具体的token),这一步通常是由jwt插件完成的,我们只需要配置jwt加密密钥、token刷新时间、token有效时间;
  3. 后端返回jwt给前端;
  4. 前端之后的请求直接带上token即可,只要在token的有效期内;
  5. 后端收到前端的请求,会验证token的合法性、有效性,验证通过之后处理请求;
  6. 后端发送响应给前端。

JWT常见误区

  • JWT是不安全的,因为使用base64编码。这种理解是错误的,头部和载荷确实使用了base64编码,作用是编码而非加密,就是这么设计的,便于前端解码获取信息,所以头部和载荷不要存放保密信息。
  • JWT是自包含,不需要借助数据库和缓存。这种理解是错误的,当需要高级功能,比如token刷新、黑名单、多人共享账号等,还是需要借助缓存和数据库。
  • 获取头部和载荷信息之后可以修改或者伪造token。这是不可能的,即使头部和载荷的信息完全一样,但是加密的私钥不对,签名也是不对的,后端验证也没法通过。

相关推荐

win10系统怎么恢复系统还原(win10系统恢复怎么操作)

1、开机不断点击F8键,进入系统操作选单,选“最后一次正确配置”,重启电脑,看能否解决。2、开机不断点击F8键,进入系统操作选单,选“安全模式”,如能成功进入,依次单击“开始”→“所有程序”→“附件”...

怎么把电脑c盘格式化(怎么把c盘格式化吗)

1.在进行c盘格式化之前,必须备份重要的数据,以免数据丢失。2.在格式化c盘之前,确保所有的应用程序和系统文件都已经备份。否则,在进行格式化之后,将需要重新安装操作系统和所有的应用程序。3.如果...

中国移动赠送的wifi6路由器(192.168.10.1中国移动路由器)

移动tclwifi6路由器很好的。WiFi6路由器远强于WiFi5路由器,值得购买性价比不错。家庭生活中网速慢最主要的原因并非速率,而是穿墙效果。坐在离路由器很近的地方,手机网速一般不会有问题。...

office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
  • office2010如何激活免费使用
win官网网址(win官方网站)

具体方法如下:打开电脑,在浏览器地址栏输入window,就会进入win中文官网,然后再寻找自己需要的软件,升级包等就可以了。下面是windows官网网址:1http://www.microsoft.c...

电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
  • 电脑的任务栏不见了怎么恢复
wifi网址登录入口(wifi网址登录入口有哪些)

wifi网页登录入口是网关地址192.168.1.1.1.首先检查路由器线路连接(参考前面手机设置路由器部分)2.将电脑Tnternet协议(TCP/IP)属性设置为“自动获取IP地址”和“自...

没有驱动程序怎么安装打印机

(1)启动电脑进入Windows操作系统,在桌面上单击开始-设置-打印机。(2)用鼠标右单击安装好的打印机图标,在弹出的右键菜单中选择属性,然后单击打印测试页按钮。(3)此时打印机会打出一页信息,从这...

u盘怎么取消写保护状态(u盘如何解除写保护状态)

如果您的U盘被设置为写保护,您可以尝试以下方法来关闭写保护:1.检查U盘上的物理开关:一些U盘上可能有一个物理开关,用于启用或禁用写保护。请检查U盘的外壳,看看是否有这样的开关,并将其切换到未锁定的...

压缩文件查看器(压缩文件查看器密码是多少)

1,打开手机上面的文件管理器,找到要压缩的WPS文件。2,长按一下WPS文件,然后选择要压缩的文件。3,点击右下角的【更多】,选择【压缩】。4,对压缩文件进行保存,压缩完成。扩展资料:wps产品特点1...

键盘哪个是截图键(键盘中的截图键是哪一个)

1、按Prtsc键截图这样获取的是整个电脑屏幕的内容,按Prtsc键后,可以直接打开画图工具,接粘贴使用。也可以粘贴在QQ聊天框或者Word文档中,之后再选择保存即可。2、按Ctrl+Prtsc键截图...

flash插件电脑版下载(flash插件下载安装)

可以不安装,不安装对电脑也不会有什么影响。友情提示,最好安装,这个也不会占用你多少内存,它是用来播放网页中的flash文件的。如果你不安装,网页中的flash动画就不能正常播放。浏览器也会提示你安装!...

如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
  • 如何打开注册表管理器(如何打开注册表管理器权限)
foxmail邮箱怎么设置(foxmail邮箱设置成功后点完成没反应)

操作步骤/方法1.打开新建界面:2.打开foxmail,在上方导航栏处找到“邮箱(B)”点开此功能,会看到一个下拉菜单,在下拉菜单中找到“新建邮箱账户(N)”。3.建立账户信息:4.点击“新建邮箱账...

电脑自动关机解决办法(电脑自动关机,原来是这里出了问题)

电脑自动关机的原因一、系统文件损坏一个完整的系统受到袭击之后,电脑就不能进行初始化,从而引起自动关机,这也是一个常见的原因。可以选择重装系统的方法来解决问题。电脑自动关机的原因二、CPU太热这是电脑自...