JWT的理解笔记
JWT简而言之就是一个特殊的token,token的出现是为了取代sessionId。
所以不完全提供密码的加密保障,更多是为了方便用户长期处于登录状态。
JWT有三部分:头部、主体、签名。
头部存放使用的摘要算法。
主体存放用户信息,不能包含密码。
签名=(头部+主体+服务器的唯一密钥)通过摘要算法得出。
过程:
服务器对登录成功的用户返回一个JWT。
用户再登录提交这个JWT。
服务器对提交的JWT进行分割,将头部+主体+服务器的唯一密钥进行摘要得出签名再与用户提交的签名进行比较,判断用户是否合法。
总结:
JWT只能判断用户是否是之前服务器验证过的合法用户,所以不完全负责加密。
但相对于sessionId,一个JWT可以用于多个同个范围的服务器(微服务),只要那些服务器保存了唯一密钥就可以访问,并且不会像sessionId一样每个用户一个sessionId导致数据量过多。
通过牺牲服务器计算时间来减少服务器数据库的压力。
jwt的生成工具类
这里写的jwt总是不标准,还很丑。