iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JWT结构由什么组成
  • 403
分享到

JWT结构由什么组成

2023-06-19 12:06:22 403人浏览 薄情痞子
摘要

这篇文章主要介绍“Jwt结构由什么组成”,在日常操作中,相信很多人在JWT结构由什么组成问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JWT结构由什么组成”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!JW

这篇文章主要介绍“Jwt结构由什么组成”,在日常操作中,相信很多人在JWT结构由什么组成问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JWT结构由什么组成”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

JWT简介

JSON WEB Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且字自包含的标准,用于将各方之间的信息地传输为jsON对象。 该信息是通过数字签名进行验证。使用HMac算法或使用RSA的公钥/私钥对JWT进行签名,所以它的安全性非常高。

进一步解释它的特点或者概念:
• 紧凑型(compact):由于是加密后的字符串,JWT数据体积非常的小,可通过 POST参数或Http请求头发送。 另外,数据体积小意味着传输速度很快。
• 自包含(self-contained):JWT包含了用户的所有信心,所以避免了每次查询数据库,降低了服务器的负载。

JWT应用场景

一般什么时候应该使用JWT呢?,一般使用在以下场景:

• 验证:这是使用JWT的最常见的场景。 一旦用户登录,每个后续请求将包括JWT,允许用户访问该令牌允许的路由,服务和资源。 单点登录是一个广泛使用JWT的功能,因为它的开销很小,并且能够在不同的域中轻松使用。
• 信息交换:JWT是在各方之间安全传输信息的好方法,因为它们可以被签名,例如使用公钥/私钥对. 另外,当使用标题和有效载荷计算签名时,还可以验证内容是否未被篡改。

JWT结构

JWT由三个部分组成,分别为“.”分隔,三部分组成如下:

  • Header(头)

  • Payload(有效载荷)

  • Signature(签名)
    因此,JWT通常格式如下:

xxxxx.yyyyy.zzzzz

现在,依次对这三个组成部分,分开讲解:

1. Header

标题通常由两部分组成:令牌的类型,即JWT,以及使用的哈希算法,如HMAC SHA256或RSA。

比如:

{  “alg”:“HS256”,  “typ”:“JWT”}

将header进行Base64 编码作为JWT的第一部分。

2. Payload

这是JWT的第二部分,包含了用户的一些信息和Cliam(声明、权利),有三种类型的Cliam:保留,公开和私人声明。
一个典型的payload应该如下:

{  "sub": "1234567890",  "name": "John Doe",  "admin": true}

将payload进行Base64 编码作为JWT的第二部分。

3. Signature

要创建签名部分,需要使用到用Base64编码后header和payloader,以及秘钥,将它们签名,一个典型的格式如下:

HMACSHA256(  base64UrlEncode(header) + "." +  base64UrlEncode(payload),  secret)

JWT是如何使用的

来说下最常见的应用场景,即认证方面,如图所示。客户端通过用户名密码向服务器请求获取某用户的信息,包括用户一些额外信息,比如权限,这些信息经过加密以JWT形式返回。获取到该JWT的客户端,在以后的每次请求中,都需要携带该JWT,这样做的好处就是每次不需要查询数据库获取该用户的信息,在微服务这样的分布式系统中,可以实现单点登录。

JWT结构由什么组成

到此,关于“JWT结构由什么组成”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: JWT结构由什么组成

本文链接: https://www.lsjlt.com/news/295992.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作