jwt,cookie等学习记录

6 阅读1分钟

**声明:大学牲学习记录,没有啥干货。佬请划走,以免浪费您时间哈哈 **

JWT

  1. jwt实现:基于header + payload + signature 三部分,通过密钥签名生成令牌,服务端仅做解析和校验,无状态设计
  2. 存储位置:不存储在服务端jvm内存,生成后返回给客户端本地存储,服务端只负责生成和解析,不保存任何令牌。
  3. 分布式支持:天生支持分布式,只要集群节点密钥一致,即可通用解析,无需共享session。
  4. 无状态优势:服务端不存会话,扩容/重启不影响登录,适配前后端分离、微服务架构。

session

什么是跨域?

协议、域名、端口三者必须完全一样才叫【同源】只要有一个不一样,就是跨域,浏览器会做安全限制。浏览器有同源策略,跨域时默认禁止请求携带cookie;

怎么工作的?

session是服务端存储的用户登录状态,它的运行完全依赖 cookie:

  1. 用户登录,服务端生成 Session,存在内存/redis;
  2. 服务端通过 cookie 把jsessionid 返回给浏览器
  3. 后续每次请求,浏览器自动带上cookie
  4. 服务端通过jsessionid 找到对应的 session,识别登录状态。

跨域疼点 跨域时 cookie 无法传递,服务端拿不到 jsessionid,Session直接失效,无法识别用户登录状态。