在分布式的项目中,资源服务的访问需要带着用户的token去认证服务器进行用户的认证再返回给用户所请求的资源,但资源服务器与认证服务器之间频繁的网络通信会造成性能上的开销。
相比于传统的只作为用户唯一标识的token,jwt(json web token)可以携带用户的信息,当用户使用jwt令牌访问资源服务器的时候,资源服务器可直接使用公钥进行令牌携带信息的校验,从而可以减少认证服务器的开销。
jwt令牌结构
JWT令牌由三部分组成,每部分中间使用点(.)分隔,比如:xxxxx.yyyyy.zzzzz
Header
头部包括令牌的类型(即JWT)及使用的哈希算法(如HMAC SHA256或RSA)
下边是Header部分的内容
{
"alg": "HS256",
"typ": "JWT"
}
将上边的内容使用Base64Url编码,得到一个字