**声明:大学牲学习记录,没有啥干货。佬请划走,以免浪费您时间哈哈 **
JWT
- jwt实现:基于header + payload + signature 三部分,通过密钥签名生成令牌,服务端仅做解析和校验,无状态设计。
- 存储位置:不存储在服务端jvm内存,生成后返回给客户端本地存储,服务端只负责生成和解析,不保存任何令牌。
- 分布式支持:天生支持分布式,只要集群节点密钥一致,即可通用解析,无需共享session。
- 无状态优势:服务端不存会话,扩容/重启不影响登录,适配前后端分离、微服务架构。
session
什么是跨域?
协议、域名、端口三者必须完全一样才叫【同源】只要有一个不一样,就是跨域,浏览器会做安全限制。浏览器有同源策略,跨域时默认禁止请求携带cookie;
怎么工作的?
session是服务端存储的用户登录状态,它的运行完全依赖 cookie:
- 用户登录,服务端生成 Session,存在内存/redis;
- 服务端通过 cookie 把jsessionid 返回给浏览器
- 后续每次请求,浏览器自动带上cookie
- 服务端通过jsessionid 找到对应的 session,识别登录状态。
跨域疼点 跨域时 cookie 无法传递,服务端拿不到 jsessionid,Session直接失效,无法识别用户登录状态。