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