Token、Session、Cookie的区别

本文详细介绍了Token的概念及其在身份验证中的应用,对比了传统的session+cookie方式,讲解了基于Token的身份验证流程,包括客户端请求登录、服务器验证及签发Token、客户端存储并携带Token进行后续请求的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由于token的前几位+盐 以hash算法压缩成一定长的16进制字符串,可以防止恶意第三方拼接token请求服务器),还可以把不变的参数也放进token,避免多次查库

传统的身份验证:

session + cookie

  1. 客户端访问,通过验证
  2. 服务器生产一条记录,记录一些必要信息
  3. 把记录这些信息的ID号发送给客户端
  4. 客户端收到ID号后存储在cookie中
  5. 下次客户端重新访问服务端是,带上cookie信息
  6. 服务端验证cookie里面的信息,如果能找到对应的记录,则用户通过了身份验证,就把用户请求的数据返回给客户端

我们需要在服务器端存储为登录的用户生成的Session,这些Session可以存储在内存,磁盘,或者数据库里。我们可能需要在服务器端定期的去清理过期的Session。

基于Token的身份验证

使用基于Token的身份验证方法在服务器段不需要存储用户的登陆记录。

  1. 客户端使用账号密码请求登录
  2. 服务器端收到请求,验证账号密码
  3. 验证通过,服务端签发一个token给客户端
  4. 客户端收到token存储起来(例如:存放在cookie)
  5. 客户端每次请求服务端时带着服务端签发的token
  6. 服务端收到请求,验证token。验证成功则返回数据,失败则重新登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值