了解 JWT

栏目: 编程工具 · 发布时间: 5年前

内容简介:JWT官网:一:JWT简介JWT全名JSON WEB TOKEN,是一个JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式)。它是在Web环境下两个实体之间传输数据的一项标准。实际上传输的就是一个字符串。广义上讲JWT是一个标准的名称;狭义上JWT指的就是用来传递的那个token字符串

JWT官网: https://jwt.io/

一:JWT简介

JWT全名JSON WEB TOKEN,是一个JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式)。它是在Web环境下两个实体之间传输数据的一项标准。实际上传输的就是一个字符串。广义上讲JWT是一个标准的名称;狭义上JWT指的就是用来传递的那个token字符串

二:JWT作用

由于http协议是无状态的,所以客户端每次访问都是新的请求。这样每次请求都需要验证身份,传统方式是用session+cookie来记录/传输用户信息,而JWT就是更安全方便的方式。它的特点就是简洁,紧凑和自包含,而且不占空间,传输速度快,而且有利于多端分离,接口的交互等等,JWT是一种Token规范,主要面向的还是登录、验证和授权方向,当然也可以用只来传递信息。一般都是存在header里

三:JWT结构

JWT一共分为三个部分:Header(头部) . Payload(负载) . Signature(签名) ;

1:Header(头部)

Header 部分是一个 JSON 对象,描述 JWT 的元数据,通常是下面的样子:

{
  "alg": "HS256",
  "typ": "JWT"
}

字段 全称 描述

alg algorithm 是签名的算法;一般是 HS256

typ type 固定值为 JWT

二:PayLoad(负载)

Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用:

{
    "iss": "d8b832c0c8caf0d99e9406ed",
    "sub": "1",
    "aud": "baijunyao",
    "iat": "1557066830",
    "nbf": "1557066840",
    "exp": "1557066850",
    "jti": "9e9668d8b8306ed8caf0d94"
}

字段 全称 描述

iss issuer 发布者

sub subject 面向的用户

aud audience 受众

iat issued at 签发时间的时间戳

nbf not before 生效时间的时间戳

exp expiration time 过期时间的时间戳

jti jwt id 每个 JWT 自己的唯一 id

除了官方定义的这些字段,我们也可以自己定义一些自己需要的字段

三:Signature(签名)

Signature 部分是对前两部分的签名,防止数据篡改,默认使用 HS256 算法进行签名;

签名的方式是把 头部和负载分别 base64UrlEncode 后用 . 拼接起来使用 Secret 进行 HS256 ;

Signature = HS256(base64UrlEncode(Header) . base64UrlEncode(Payload), Secret)

四:JWT

JWT一共由Header(头部) . Payload(负载) . Signature(签名) 组成,我们把 base64UrlEncode 的头部和负载以及签名用 . 拼接起来就是一个 JWT 了

JWT = base64UrlEncode(Header) . base64UrlEncode(Payload) . HS256(base64UrlEncode(Header) . base64UrlEncode(Payload), Secret)

由于JWT 中的 Header 和 Payload 是使用 base64UrlEncode 进行加密的; 任何人都可以非常轻松的就使用 base64UrlDecode 进行解密,所以JWT中千万不要存储敏感数据,WT 是由服务器端生成返回给前端的; 前端在发送请求的时候一般把 JWT 放在 HTTP Headers 中的 Authorization 字段中,也可以直接放在URl链接上

五:JWT特点

1:优点

(1)相比于 session 少了读取文件的步骤,效率更高,方便扩展

(2)因为不使用 cookie 天生免疫 CSRF 攻击

(3)因为不使用 cookie 不用担心用户禁用 cookie ;不用悬挂本站需要使用 cookie 的提示信息;

(4)适合 APP 前后端分离的场景

2:缺点

(1)一旦签发不能撤销 没有类似清空 session 的操作

(2)不能自动续签


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

内容创业:内容、分发、赢利新模式

内容创业:内容、分发、赢利新模式

张贵泉、张洵瑒 / 电子工业出版社 / 2018-6 / 49

越来越多的内容平台、行业巨头、资本纷纷加入内容分发的战争中,竞争非常激烈。优质的原创性内容将成为行业中最宝贵的资源。在这样的行业形势下,如何把内容创业做好?如何提高自身竞争力?如何在这场战争中武装自己?是每一位内容创业者都应该认真考虑的问题。 《内容创业:内容、分发、赢利新模式》旨在帮助内容创业者解决这些问题,为想要进入内容行业的创业者出谋划策,手把手教大家如何更好地进行内容创业,获得更高的......一起来看看 《内容创业:内容、分发、赢利新模式》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具