鉴权方式对比-jwttoken和cookie+session

1.cookie + session

实现原理:

为了识别请求是来自哪个用户/客户端,后台会生产一个session来保存会话状态,session依靠不同的sessionId来进行区分,sessionId会在第一次请求后保存到客户端,之后的请求都要在cookie中带上sessionId,服务器端会解析Cookie获取sessionId进行识别。

 

 

 

优点:

鉴权方式对比-jwttoken和cookie+session_第1张图片

 

  • 技术上实现简单

缺点:

  • 不适合分布式应用,跨平台性差
  • Cookie传输会影响通信性能
  • HTTP协议本身是无状态的,而Cookie+Session机制硬生生的给加了状态进去,不符合设计理念
  • 存在安全风险:因为Cookie是存储在客户端的,客户端可以随意更改Cookie,存在伪造请求的风险

 

2.token

实现原理:

使用用户名+密码的方式进行登录

服务器验证用户信息

服务器通过验证发送给用户一个token

客户端存储token值,并在请求头添加token

再次请求的时候服务端验证token值

鉴权方式对比-jwttoken和cookie+session_第2张图片

优点:

  • 真正的无状态,适合分布式,扩展性好
  • 性能高,安全性好

缺点:

  • 无法在服务端注销,很难解决劫持问题

 

 

你可能感兴趣的:(其他,session,cookie)