百木园-与人分享,
就是让自己快乐。

token和jwt

首先明确: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去数据库中校验当前请求是否合法
 
0
其中这个sessionID其实就是实际意义上的通行证、令牌,也就是我们常说的Token。
但是我们发现,sessionID一般都是用UUID直接生成的本身没有实际意义,这个Token代表的信息必须与缓存数据库中存储的session信息进行对比才能知道对应的认证信息。
2、jwt

0

在现在的多数项目中,业务更加复杂,接口鉴权的频次也越来越高,为了减少和缓存数据库的数据交换,更多人选择使用jwt,这样直接校验jwt本身即可明确当此请求的主体,无需和Redis中的信息进行对照即可完成鉴权。
jwt的生成和解析都有固定的算法,里边包含了头信息、载荷信息和签名,通过指定的解析方法就可得到jwt中的载荷信息,从而判断当前的请求是谁发起的、请求是否超期等等信息。
 


来源:https://www.cnblogs.com/java-bhp/p/16383040.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » token和jwt

相关推荐

  • 暂无文章