JWT(JSON Web Token)是一种用于在网络环境中进行安全信息传递的开放标准
完整的JWT由三部分组成,其结构可以表示为xxxxxx.yyyyyy.zzzzzz格式。
头部(Header):
通常包含令牌的类型和加密算法;
载荷(Papload):
包含自定义的数据如用户信息,权限等;
签名(Signature):
作用是用来验证消息的完整性和真实性,防止消息被篡改;
JWT是无状态的,服务器不需要为其保存会话信息,从而减轻了服务器的存储压力,但同时也意味着一旦泄露任何请求都会被允许,而常用的解决方法是给JWT设置不固定的过期时间,强制客户端过期重新获取。
JWT另一个特点是,一旦生成后在其过期前都不可再修改其有效期。
它的主要应用场景包括用户身份验证和授权,用户在登录成功后获取JWT后,后续的所有请求都需要携带该JWT向服务器请求资源,服务器则可以根据这个JWT来验证用户的有效性。