【ASP.NET】-Cookie、Session与Token机制

前几天学习Session与cookie的时候想起来有一次技术分享时候,提到了Token机制,心里想着他们都是状态保持机制,有什么关系和区别呢,今天查了下简单有个认识;

Cookie-客户端状态保持机制:

客户端状态保持Cookie,是一种文本文件,也就是以字符串的形式保存在用户电脑上的一些数据;详见:Cookie机制

Session-服务端状态保持机制:

Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间;

Session是基于cookie的,服务器创建session时会自动为每个session分配一个ID号(JSESSIONID),服务器会以cookie方式把session id写给浏览器,也就是通过cookie存储一个session_id,然后具体的数据则是保存在session中;

如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。以此实现session共享;

认证流程:

  • 用户通过浏览器向服务器发送一个POST请求(用户名、密码);
  • 服务端进行验证,验证通过后放入session中,并分配一个sessionId返回给浏览器;
  • 浏览器再次发出请求(cookie自动携带sessionId 的请求);
  • 服务端接收并根据session Id返回相应信息给浏览器;

在这里插入图片描述

Token机制:

token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。

当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。

简单token的组成(uid+time+sign+固定参数-可选);

  • (用户唯一的身份标识)
  • time(当前时间的时间戳)
  • sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串,为防止token泄露)
  • 将一些常用的固定参数加入到token中防止重复查库;

Token认证流程:

  • 用户登录校验,校验成功后返回一个Token给客户端;
  • 客户端接收到数据后保存客户端
  • 客户端每次访问浏览器的时候携带Token令牌到服务器端;
  • 服务器进行校验,校验成功返回请求数据,失败则返回错误或提示登录;

比较:

session是基于cookie进行用户识别的, cookie如果被截获,用户就会很容易受到跨站请求伪造的攻击,而Token机制在服务器返回给浏览器的是加密的Token,当浏览器再次向服务器发出请求时,服务器对浏览器传来的token值进行解密,解密完成后进行用户数据的查询,如果查询成功,则通过认证,实现状态保持;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值