什么时候适合用jwt(听说你分不清JWT和Token)
首先明确:JWT = JSON WEB TOKEN
你看,我的英格利希就是这么棒!
那么就很简单了,Token=令牌,JWT=含有json信息的令牌
用一个形象一点的例子解释一下Token和JWT的区别与
以前医生开药单,都是用的龙飞凤舞的特殊简写,你只有把这个药方拿到指定的取药处,取药人根据药方结合脑中的对照表,就知道这个药方代表着什么意思了。
这就是普通的token,即token本身并没有实际信息,token代表着什么意思需要到服务器端进行对照。
现在医生开药单都是电脑开单,药名什么的都非常清晰,拿着药单去哪里都能看懂,无需任何对照。
这就是jwt,即token本身携带了信息,无需到指定的药房,也无需对照就能知道token代表的信息。
通过这个伪例子,用一句话总结一下token和jwt的区别:jwt是自身包含认证信息的特殊token。
1、token在传统的项目中,登录成功后主要有下边几个动作:
后端生成session存储在数据库中(一般是Redis)
将session返回给前端,前端将session保存到cookie
后续请求都携带sessionID,则后端根据sessionID去数据库中校验当前请求是否合法
其中这个sessionID其实就是实际意义上的通行证、令牌,也就是我们常说的Token。
但是我们发现,sessionID一般都是用UUID直接生成的本身没有实际意义,这个Token代表的信息必须与缓存数据库中存储的session信息进行对比才能知道对应的认证信息。
2、jwt
在现在的多数项目中,业务更加复杂,接口鉴权的频次也越来越高,为了减少和缓存数据库的数据交换,更多人选择使用jwt,这样直接校验jwt本身即可明确当此请求的主体,无需和Redis中的信息进行对照即可完成鉴权。
jwt的生成和解析都有固定的算法,里边包含了头信息、载荷信息和签名,通过指定的解析方法就可得到jwt中的载荷信息,从而判断当前的请求是谁发起的、请求是否超期等等信息。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com