【java入门到放弃】Session和JWT

概述

cookie传到后端会解析成Map<String, String>

实际开发中通常只存"少量关键信息(比如一个 token)"

Session 在使用上类似 Map,通过 key-value 存储数据

Session一般存用户id、权限信息等。

一般情况下,讲Session序列化成json,以String类型,存到redis

分布式

JWT是无状态的,支持分布式

Session要支持分布式,需要存到redis里

单点登录

每一次登录成功,需要生成一个全新的 唯一的 sessionId

还需要把 userId 和 sessionId 存入redis

jwt的话,可以加入签发时间生成token,这样同一个用户,每次登录都是不同的token

也是一样,把 userId 和 token 存入redis。

安全

JWT 可以存储在 Cookie 或 localStorage 中。将 JWT 存在 Cookie 中可以利用 HttpOnly、Secure、SameSite 等属性提高安全性,但需要防范 CSRF 攻击;而存储在 localStorage 中可以避免 CSRF,但需要防范 XSS 攻击。因此,安全性取决于整体设计,而不是存储位置。

shell 复制代码
HttpOnly = true   (JS 读不到)
Secure   = true   (只走 HTTPS)
SameSite = Strict / Lax(防 CSRF)
相关推荐
aosky4 分钟前
Linux 写内容到文件的几种方式
java·linux·服务器
佳児素花痴╮12 分钟前
Qt速通2
开发语言·qt
Wang's Blog25 分钟前
Java框架快速入门: Spring Security+OAuth2之邮件验证码发送(SMTP与API方式)
java·数据库·spring
“AI国潮设计-小江”36 分钟前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁英歌舞猫IP & 创意甜品设计(附ComfyUI工作流与商业授权说明)
开发语言·人工智能·python·prompt·aigc
529宝宝起名网44 分钟前
用 Python 分析汉字字源与起名用字的关联规律:从六书结构到文化寓意的起名偏好洞察
开发语言·python
linx2951 小时前
单元九 · 零基础路线图-第 7–9 周·类与 RAII
c语言·开发语言·数据结构·c++·嵌入式硬件·算法
砚底藏山河1 小时前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)
java·数据库·python·金融
白色的北极熊2 小时前
c语言 输出菱形字符串
c语言·开发语言
2501_930472442 小时前
云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检
java·腾讯云
学习智者2 小时前
《玄》IDE v3.6.3重磅发布:全功能修复与性能飞跃
开发语言·c++·ide·算法·中文语言 玄