传统token与Jwt区别及优缺点

本文探讨了传统token和JWT(JSON Web Token)在身份验证中的使用。传统token方式涉及服务器存储、验证和效率问题,而JWT则通过自包含信息、无需服务器存储来减轻压力,但其不可修改性和安全风险也是关注点。两种方式各有优缺点,适用于不同的应用场景。
摘要由CSDN通过智能技术生成

一、传统token

 

例子:传统token登陆过程

  1. 前端点击登陆,服务器验证账号密码成功

  2. 服务器生成令牌,本质是一个32位的uuid

  3. 将该令牌存到数据库或redis中,key是uuid,value是userId

  4. 把令牌返给客户端,客户端把令牌存在cookie中。

  5. 下次请求的时候就把令牌放在请求头里带上

  6. 从redis中验证该令牌是否过期

  7. 获取value内容userId

  8. 根据userId查询用户信息,再返回客户端

传统token优缺点

优点:

  1. 可以隐藏真实数据

  2. 适用于分布式/微服务

  3. 安全系数高

缺点:

  1. 存放在redis,必须依赖服务器,暂用服务器资源

  2. 效率非常低

 

二、JWT

例子:JWT登陆过程

Jwt优缺点有那些

优点:

  1. 无需服务器端存放数据,减轻服务器端的压力

  2. 占用带宽比较小、跨语言

  3. token自身包含用户信息且无法篡改,在服务(网关)中可以自行解析校验出用户信息,对认证服务器(account-svc)压力小

缺点:

  1. 建议不要放铭感数据 userid、手机号码(如果非要放userId,deptId等信息,可采用rsa256算法加密)RSA256生成Jwt

  2. Jwt生成之后无法修改(发生变化)

  3. 后端无法统计 生成jwt

  4. 无法吊销令牌,只能等待令牌自身过期

  5. 令牌长度与其包含用户信息多少正相关,传输开销较大

  6. Jwt是无状态的,如果别人获取到了,别人也能用

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值