jwt全称是json web token,是服务器颁发给客户端的身份凭证,客户端拿着凭证来获取服务器资源,服务器根据凭证验证用户身份信息,并选择拒绝还是同意授予资源。
相比session、redis token等机制,jwt在验证用户身份信息的时候不需要去比对,只需要通过计算验证凭证的合法性就可以了,所以合理使用jwt可以减少检索数据库、缓存服务器的次数,提升服务器性能。
为什么jwt有这个优势呢,因为jwt在生成的时候通过密钥签名机制保证了jwt凭证是无法篡改和伪造的。有了这个优势,jwt服务器可以很自信的放行所有的合法凭证
当然jwt也是有其局限性的,jwt最大的问题就是一旦颁发,只要在过期时间内都是合法的,即使用户账号注销了。
而且jwt没有续签机制,当凭证过期后客户端需要重新登录获取凭证。
还是那句话,没有十全十美的技术,只有针对不同使用场景的不同选择,互勉!