
文章插图
token并不需要保存,只需要将发过来的token用同样的HMAC-SHA256算法和密钥再算一次比对相同就表示这个用户已经登录了,并且可以直接取到用户的userID,相反不相同,则会提示认证失败 。token的优势是非常明显的,服务器只生产token和验证token , 所以服务器就变得非常轻松,没有了各种附带的状态 。

文章插图
但由于token中的数据也是明文保存,所以一旦某个人的token被人偷走了,和本人是一样的 。

文章插图
总之cookie依旧在,使用web api的互联网大厂更加热衷于token , token相对于session id、cookie会更加安全,并且无状态、可扩展,支持移动设备,可以跨程序调用 。
以上个人浅见 , 欢迎批评指正 。
认同我的看法,请点个赞再走,感谢!
喜欢我的 , 请关注我,再次感谢!
Token和session都是web网站的会话保持、认证的解决方案;
既然都一样为什么还有token的说法 。
从token产生的背景说起1.移动端应用使得服务器端Session失效
2.分布式系统中Session无法共享
所以说session对于以上两种情况无效了,所以有了Token的说法
那么什么是token,token长什么样子?先给大家一个直观的感受
token:PC-3066014fa0b10792e4a762-23-20170531133947-4f6496
说白了token保存就是用户的信息(不能保存密码等敏感信息)
token的组成:
客户端标识-USERCODE-USERID-CREATIONDATE-RONDEM[6位]
USERCODE,RONDEM[6位]经过MD5加密就变成了以上字符串
token的请求流程

文章插图
请求流程解析
1.前端用户发送登录信息至认证系统
2.验证用户登录信息,判断用户是否存在
3.如果用户存在,生成token信息(客户端标识-USERCODE-USERID-CREATIONDATE-RONDEM[6位]) , 并存储在redis中
4.并将该token返回前端,附加至header
验证token客户端
将token附加至header
服务端
从客户端请求header中取出token
与redis中的token进行比对,如果一致则允许访问 。最后总结一下
【什么是token token和session的区别】一般的垂直架构项目使用Session没有任何问题 , 但是分布式项目或涉及到移动端则考虑使用token 。
- 清明节和重阳节的区别 清明节重阳节分别是什么
- 汪峰和华晨宇什么关系 歌手华晨宇为什么每次都是第一
- 韩国电影寄生虫详细剧情 寄生虫是韩国电影吗
- 警惕胃癌早期四大征兆有哪些
- 三星堆遗址被誉为什么? 三星堆为什么叫三星
- 世界十大凶猛斗犬排名 世界上什么狗最凶猛排名第一的是谁
- 你为什么要把我拉黑 老婆拉黑老公说明什么
- 拉黑最爱的人是种什么感受 把男友拉黑,他什么感觉
- 心机小三都是怎么打击原配的 聪明的小三对付原配
- 小三超能作可出轨男人就是喜欢 怎样分离小三的聪明做法
