首页>系统/运维> Token是什么?和session、cookie相比,使用场景有什么区别?
Token是什么?和session、cookie相比,使用场景有什么区别?
- 分类:系统/运维
- 时间:2022-05-19
- 阅读:1104
在Web开发领域,相信大家对于Cookie和Session都很熟悉,Cookie和Session都是会话保持技术的解决方案。随着技术的发展,Token机制出现在我们面前,不过很多开发者对于Token和Cookie、Session的区别及使用场景分辨不清。
Cookie和Session的用途
由于HTTP无状态的特性,如果要实话客户端和服务器端的会话保持,那就需要其它机制来实现,于是Cookie和Session应运而生。
通常情况下,Session和Cookie是搭配在一起使用的。
Token是什么
于是有人思考,如果把Session信息让客户端来保管而且无法伪造不就可以解决这个问题了?进而有了Token机制。
Token俗称为“令牌”,它的构成是:
uid:用户唯一身份标识 timestamp:当前时间戳 sign:签名字符串,防止第三方伪造数据;签名密钥是存储在服务器端的,其它人无法知道 其它附加参数。
Token机制下的认证流程
1、用户登录进行身份认证,认证成功后服务器端生成Token返回给客户端;
2、客户端接收到Token后保存在客户端(可保存在Cookie、LocalStorage、SessionStorage中);
3、客户端再次请求服务器端时,将Token作为请求头放入Headers中;
4、服务器端接收请求头中的Token,将用户参数按照既定规则再进行一次签名,两次签名若一致则认为成功,反之数据存在篡改请求失败。
(生成签名示例图)
(验证签名示例图)
Token与Cookie+Session的区别
Cookie其实也充当的是令牌作用,但它是“有状态”的;而Token令牌是无状态的,更利于分布式部署。
- 下一篇
- 已经是最后一篇