JWT解决分布式系统单点登录的问题
一、JWT是什么?
Json Web Token的首字母简写,符合JSON开放标准的站点通行证。
我们知道http请求协议是无状态的,意味着客户端用户每次请求时,必须带上用户身份信息,否则服务端不知道是谁发出的请求。
二、基于Session认证的局限性
1.session通常都是保存在服务端内存中,随着认证用户越来越多,服务端内存的开销明显增大,响应的性能下降。
2.因用户首次认证的信息保存在服务器内存中,用户再次请求时只能在原来的服务器上认证,这样就限制了多服务器负载均衡的能力,也就限制了分布式系统的扩展能力。
三、基于JWT认证的好处
用户的认证信息无需保留在服务端,意味着无需考虑用户登录了哪台服务器,这就为分布式应用系统的扩展提供了便利,同时也满足了单点登录的应用场景。
四、Token认证的流程如下
1.客户端用户首次认证时发送账号和密码到服务端;
2.服务端验证成功之后生成加密的token,并返回客户端保留;
3.客户端再次请求时需带上token,服务器校验;
4.服务端校验成功之后返回客户端请求的数据。