1. 什么是JWT?
JWT (JSON Web Tokens)是一种跨域认证解决方案。
- 数据传输简单、高效
- JWT会生成签名,保证传输安全
- JWT具有时效性
- JWT更高效利用集群做好单点登录
2. 原理
服务端认证后,生成一个JSON对象,后续通过JSON进行通信。
3. 数据结构
Header(头部).Payload(负载).Signature(签名)
Header结构
{ "alg":"HS256", //是指定加密的算法 "typ":"JWT" //声明类型 }
Payload结构
1.iss token的发行者 2.sub 该jwt所面向的用户 3.aud 接收该jwt的一方 4.exp token的失效时间 5.nbf 在此时间段之前,不会被处理 6.iat jwt发布时间 7.jti jwt唯一标识,防止重复使用
Signature(签名)
signature 是签证信息,该签证信息是通过header和payload,加上secret(密钥),通过算法加密生成。
公式 signature = 加密算法(header + “.” + payload, 密钥)
;
4. 使用方式
1. /api?token=xxx
2. cookie写入token
3. storage写入token,请求头添加:`Authorization:Bearer<token>`