cookie和token的理解

cookie和token的理解

HTTP协议本身是无状态的,所以需要一个标志来对用户身份进行验证

1、cookie

用户登录成功后,会在服务器存一个session,同时发送给客户端一个cookie

数据需要客户端和服务器同时存储

用户进行操作时,需要带上cookie,在服务器进行验证

cookie是有状态的

基于cookie的验证是有状态的,就是说验证或者会话信息必须同时在客户端和服务端保存。这个信息服务端一般在数据库中记录,而前端会保存在cookie中。

验证的一般流程如下:

用户输入登陆凭据;

1.服务器验证凭据是否正确,并创建会话,然后把会话数据存储在数据库中;
2.具有会话id的cookie被放置在用户浏览器中;
3.在后续请求中,服务器会根据数据库验证会话id,如果验证通过,则继续处理;
4.一旦用户登出,服务端和客户端同时销毁该会话。

2、token

用户进行任何操作时,都需要带上一个token

token的存在形式有很多种,header/requestbody/url 都可以

这个token只需要存在客户端,服务器在收到数据后,进行解析

token是无状态的

随着单页面应用程序的流行,以及Web API和物联网的兴起,基于token的身份机制越来越被大家广泛采用。

当讨论基于token的身份验证时,一般都是说的JSON Web Tokens(JWT)。虽然有着很多不同的方式实现token,但是JWT已经成为了事实上的标准,所以后面会将JWT和token混用。

基于token的验证是无状态的。服务器不记录哪些用户已登陆或者已经发布了哪些JWT。对服务器的每个请求都需要带上验证请求的token。该标记既可以加在header中,可以在POST请求的主体中发送,也可以作为查询参数发送。

工作流程如下:

1.用户输入登陆凭据;
2.服务器验证凭据是否正确,然后返回一个经过签名的token;
3.客户端负责存储token,可以存在local storage,或者cookie中;
4.对服务器的请求带上这个token;
5.服务器对JWT进行解码,如果token有效,则处理该请求;
6.一旦用户登出,客户端销毁token。

对比:

token比cookie先进,更能适用于跨平台,移动平台等

更详细请点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值