一、传统token
例子:传统token登陆过程
前端点击登陆,服务器验证账号密码成功
服务器生成令牌,本质是一个32位的uuid
将该令牌存到数据库或redis中,key是uuid,value是userId
把令牌返给客户端,客户端把令牌存在cookie中。
下次请求的时候就把令牌放在请求头里带上
从redis中验证该令牌是否过期
获取value内容userId
根据userId查询用户信息,再返回客户端
传统token优缺点
优点:
可以隐藏真实数据
适用于分布式/微服务
安全系数高
缺点:
存放在redis,必须依赖服务器,暂用服务器资源
效率非常低
二、JWT
例子:JWT登陆过程

Jwt优缺点有那些
优点:
无需服务器端存放数据,减轻服务器端的压力
占用带宽比较小、跨语言
token自身包含用户信息且无法篡改,在服务(网关)中可以自行解析校验出用户信息,对认证服务器(account-svc)压力小
缺点:
建议不要放铭感数据 userid、手机号码(如果非要放userId,deptId等信息,可采用rsa256算法加密)RSA256生成Jwt
Jwt生成之后无法修改(发生变化)
后端无法统计 生成jwt
无法吊销令牌,只能等待令牌自身过期
令牌长度与其包含用户信息多少正相关,传输开销较大
Jwt是无状态的,如果别人获取到了,别人也能用
版权声明:本文为qq_41369135原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。