专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

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.eeeoo.cn/wangluo/1151277.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?

    dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?

    dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?在dnf中,红玉髓是一种非常有用的材料,它不仅能够兑换圣物装备,还能换取各种药剂,对于玩家来说,掌握红玉髓的用途和兑换地点至关重要。dnf红玉髓是干什么用的1.兑换圣物装备:红玉髓是制作圣...

  • 星图软件的使用方法(星图软件是干什么的)?

    星图软件的使用方法(星图软件是干什么的)?

    星图软件的使用方法(星图软件是干什么的)?相信很多人都喜欢看星空,不仅因为美丽还因为只要抬头望望满天繁星,就会感觉,相对于宇宙,自己是多么渺小,曾经认为天大的事情也变得微不足道。星图软件是一款对初学者十分友好的观星软件,不仅操作简便,还能让...

  • 玛雅软件是干什么的(玛雅软件多少钱)?

    玛雅软件是干什么的(玛雅软件多少钱)?

    玛雅软件是干什么的(玛雅软件多少钱)?玛雅软件又叫Maya软件,是由Autodesk公司开发的一款专业的三维计算机图形软件。它主要用于3D建模、动画、渲染和特效制作等领域。Maya被广泛应用于电影、动画、游戏和建筑等行业,被认为是行业标准之...

  • pcb软件是干什么的(pcb软件有哪些)?

    pcb软件是干什么的(pcb软件有哪些)?

    pcb软件是干什么的(pcb软件有哪些)?PCB软件是指用于设计、制作和测试电子电路板的计算机程序。随着科技的发展,越来越多的PCB软件被开发出来,使得电子工程师们可以更加高效地进行电路板的设计和制造。下面小编将介绍一些常用的PCB软件。p...

  • 上位机软件是干什么的(上位机软件开发用什么语言)?

    上位机软件是干什么的(上位机软件开发用什么语言)?

    上位机软件是干什么的(上位机软件开发用什么语言)?上位机开发,在工业自动化的领域,主要是从事工业软件的开发,借助于开发环境与高级语言(C#、C++等),实现PLC、传感器、仪器仪表、工业机器人、雷赛、固高、正运动等运动控制器、机器视觉系统、...

  • 思迅软件是干什么的(思迅软件官网)?

    思迅软件是干什么的(思迅软件官网)?

    思迅软件是干什么的(思迅软件官网)?思迅软件主要是做商超收银的,选择开店创业的朋友在开店之始都会选花很多时间去采购一套收银系统,在采购收银系统的时候都会问“收银系统一套多少钱”,有时候就会遇到很多疑惑,百度知道说要3700,这个厂商只要80...

  • 百胜软件是干什么的(百胜软件盘点教程)?

    百胜软件是干什么的(百胜软件盘点教程)?

    百胜软件是干什么的(百胜软件盘点教程)?百胜软件基于多年的数字化零售实践经验及品牌零售中台建构技术实力,推出了SaaS中间件Adaptor全网通系列产品,帮助品牌商解决与线上电商业务多平台、多系统等的连接难题。其中,商品通为Adaptor全...

  • crd软件对电脑配置要求(crd软件是干什么用的)?

    crd软件对电脑配置要求(crd软件是干什么用的)?

    crd软件对电脑配置要求(crd软件是干什么用的)?crd是一款专业的矢量图形绘制软件,具有强大的矢量图形绘制和编辑功能,全称“CorelDRAW”,是由加拿大Corel公司出品的一款平面设计软件。该软件以其强大的矢量图形制作和排版功能而著...

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

精彩推荐