专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

JWT 是干什么?

来源:小易整编  作者:小易  发布时间:2024-03-20 08:10
摘要:jwt是目前流行的跨域认证解决方案,其原理是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,进而不用再保存任何session数据,使服务端变得无状态。jwt验证方式是将用户信息通过加密生成toke...

jwt是目前流行的跨域认证解决方案,其原理是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,进而不用再保存任何session数据,使服务端变得无状态。

JWT 是干什么?

jwt验证方式是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,不用再保存任何session数据了,进而服务端变得无状态,容易实现拓展。

加密前的用户信息,如:

{    "username": "vist",    "role": "admin",    "expire": "2018-12-08 20:20:20"}
登录后复制

客户端收到的token:

7cd357af816b907f2cc9acbe9c3b4625
登录后复制

JWT 结构

一个token分为3部分:

头部(header)

载荷(payload)

签名(signature)

3个部分用“.”分隔,如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
登录后复制

头部

JWT的头部分是一个JSON对象,描述元数据,通常是:

{  "typ": "JWT",  "alg": "HS256"}
登录后复制

typ 为声明类型,指定 "JWT"

alg 为加密的算法,默认是 "HS256"

载荷

载荷(payload)是数据的载体,用来存放实际需要传递的数据信息,也是一个JSON对象。

JWT官方推荐字段:

iss: jwt签发者

sub: jwt所面向的用户

aud: 接收jwt的一方

exp: jwt的过期时间,这个过期时间必须要大于签发时间

nbf: 定义在什么时间之前,该jwt都是不可用的.

iat: jwt的签发时间

jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。

也可以使用自定义字段,如:

{    "username": "vist",    "role": "admin"}
登录后复制

签名

签名部分是对前两部分(头部,载荷)的签名,防止数据篡改。

按下列步骤生成:

1、先指定密钥(secret)

2、把头部(header)和载荷(payload)信息分别base64转换

3、使用头部(header)指定的算法加密

最终,签名(signature) = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)

客户端得到的签名:

header.payload.signature
登录后复制

也可以对JWT进行再加密。

推荐教程:《PHP》

以上就是JWT 是干什么?的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1151277.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • JWT 是干什么?

    JWT 是干什么?

    jwt是目前流行的跨域认证解决方案,其原理是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,进而不用再保存任何session数据,使服务端变得无状态。jwt验证方式是将用户信息通过加密生成toke...

  • 嗖嗖平台是干什么的

    嗖嗖平台是干什么的

    嗖嗖是一个全场景生活服务平台,是一款集到家到店、网上商城、线上线下省钱消费业务为一体的app,致力于让合作商家没有库存,让嗖嗖用户享受实惠。嗖嗖平台通过打通供应链体系,覆盖了网购、话费充值、缴电费、火车票、订外卖、加油、打车出行、订酒店、看...

  • isp芯片是干什么的

    isp芯片是干什么的

    isp芯片是一种集成的电路芯片,主要用于图像的处理和改善。它可以用于图像增强、色彩失真校正、降噪、白平衡等作用。它是数字影像设备中实现固件升级和优化的安防有效方法之一,因此在家电、手机、电子相机、汽车等领域都有广泛的应用。ISP芯片是一种集...

  • ptn设备是干什么用的

    ptn设备是干什么用的

    ptn设备是用在接入层和汇聚层代替sdh的光传输设备,其作用就是在固网和移动回传中用来传输语音业务和数据业务,最大的特点是通过实现统计复用功能弥补了sdh时隙电路刚性缺陷。本教程操作环境:Windows10系统、DELLG3电脑ptn设备...

  • web前端开发是干什么的

    web前端开发是干什么的

    web前端开发是指通过html、css、javascript等前端技术,开发web网站的职业,主要负责前端部分的设计与实现。在当今互联网快速发展的时代,web前端开发越来越受到关注,越来越多的公司开始注重web前端的开发,并且对web前端开...

  • 前端是干什么的

    前端是干什么的

    前端开发是创建web页面或app等前端界面呈现给用户的过程,通过html、css及javascript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过H...

  • ni软件是干什么的

    ni软件是干什么的

    ni软件可以用于创建、校准并部署一个视觉应用程序,是用于自动检测的视觉生成器;ni的全称是“nationalinstruments”,是一款具有众多优势视觉软件产品,实现机器视觉应用软件,能提供强大的程序库,视觉开发模块可缩短的开发周期。...

  • 飞信是干什么的

    飞信是干什么的

    飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与internet深度互通的即时通讯产品;除了具备聊天软件的基本功能外,飞信可以通过pc、手机、wap等多种终端登录。本文操作环境:windows7系统、D...

  • 周排行
  • 月排行
  • 年排行

精彩推荐