定义
是一个开放标准,定义了一个紧凑的自包含的方式,用于各方之间的以json对象安全的传输信息。此信息可以验证和信任。jwt可以使用密钥(HMAC算法),或者使用RSA
或公钥/私钥进行签名。
通俗的讲
就是json web token 的缩写,通过json的形式作为web应用中的令牌。用于各方之间安全的奖信息作为json对象传递。在数据的传输过程中可以对其进行加密和签名。
能做什么
1、授权,SSO(单点登录)跟随完成跨域。
2、信息交换。可以安全的在系统之间作为数据传递,验签之后才能执行后续的操作。
JWT好处
1、基于session的开发,每次服务端都会存储一个session,造成服务端开销过大。
2、限制了应用的扩展能力,因为每次session请求的验证都在同一台个服务上,限制了负载均衡的能力。
3、基于客户端cookie的验证,拦截后容易收到跨站伪造攻击。
4、如果是前后端分离项目,前端存储的sessionID,得通过代理 传达到服务端,如果服务端是集群部署,还涉及到sessionId的共享问题。
而JWT的存储在客户端,基于客户端管理,用户认证通过后,整个操作流程中都通过token认证。
优势
1、简洁:可以直接通过header中传输到服务端
2、自包含:运用负载可以存贮\取出用户信息
3、开语言的,就是字符串
4、不需要服务端保存会话信息