token 和 jwt 的区别

Token

概念: 令牌, 是访问资源的凭证

token的认证流程

  1. 用户输入用户名和密码,发送给服务器,服务器验证账号密码成功
  2. 服务器生成令牌,本质是一个32位的uuid(token: 55833b9d752bc1914b3087c7503ae5f9)
  3. 将该令牌存到数据库或redis中,key是uuid,value是userId
  4. 把令牌返给客户端,客户端把令牌存在cookie中
  5. 下次请求的时候就把令牌放在请求头里带上
  6. 从redis中验证该令牌是否过期
  7. 获取value内容userId
  8. 根据userId查询用户信息,再返回客户端
  9. 一旦用户退出登录,只需要客户端销毁token即可,服务器端不需要任何操作

优点

  1. 可以隐藏真实数据
  2. 适用于分布式/微服务
  3. 安全系数高

缺点

  1. 存放在redis,必须依赖服务器,暂用服务器资源
  2. 效率非常低

JWT

概念:JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证

组成:JWT包含三个部分: Header头部,Payload负载和Signature签名。由三部分生成token,三部分之间用“.”号做分割

'token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb2QiOiI2NDA1NzEtODQ4NzY4LTUwMDE3NS00MjkxNDYtMzg5MDY4IiwidXNyIjoiMTM2NzYyOTExODgiLCJleHAiOjE2NDk2NjkzNTAsImlhdCI6MTY0ODQ1OTc1MCwianRpIjoiZmtnamR2ODMyajBzMTBvMTUxNW9nOG1vaGMifQ.mTjcpqGTBIsEF3yEZmy9sr_0gpUsPAhWcAFVEeGI-F4'

JWT登录过程

优点

  1. 无需服务器端存放数据,减轻服务器端的压力
  2. 占用带宽比较小、跨语言
  3. token自身包含用户信息且无法篡改,在服务(网关)中可以自行解析校验出用户信息,对认证服务器(account-svc)压力小

缺点

  1. 建议不要放铭感数据 userid、手机号码(如果非要放userId,deptId等信息,可采用rsa256算法加密)RSA256生成Jwt
  2. Jwt生成之后无法修改(发生变化)
  3. 后端无法统计 生成jwt
  4. 无法吊销令牌,只能等待令牌自身过期
  5. 令牌长度与其包含用户信息多少正相关,传输开销较大
  6. Jwt是无状态的,如果别人获取到了,别人也能用

参考:https://blog.csdn.net/qq_41369135/article/details/116530607

posted @   爱晚亭的那一片枫叶林  阅读(5619)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示