news 2026/10/19 19:09:21

http通信鉴权(三)基于 Session + CSRF Token 的 Cookie 认证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
http通信鉴权(三)基于 Session + CSRF Token 的 Cookie 认证

一、介绍

1、简介

这也是一个非常典型的 Web 会话认证方式,不是 OAuth,也不是 JWT,而是: 基于 Session + CSRF Token 的 Cookie 认证(Spring / Java 系生态最常见)

项目是否
Session-based Auth✅
Cookie Auth✅
CSRF Protection✅
JWT❌
OAuth2❌

2、示例

XSRF-TOKEN=******; SESSION=******

二、组成

XSRF-TOKEN = e1a29ed4-8850-4e48-8ac5-833ccfad1899
SESSION = ljU0ZDa2OTMtMTg2gS00njE2LTk0MDEtOGUyMuYxNTE3MTZa

1、SESSION(核心认证凭证)

这是服务端 Session ID,登录成功后由服务器生成。

  • 存在:内存 / Redis / DB

  • Cookie 里只存sessionId

  • 每次请求:Cookie: SESSION=xxxx

  • 服务端用 sessionId 找用户信息,这就是真正的“你是谁”

2、XSRF-TOKEN(防 CSRF)

这是 CSRF 防护 token(不是身份认证),

  • 用来防止:跨站请求伪造(CSRF)

  • 常见于:Spring Security Angular / Vue

工作机制
  1. 服务端生成一个随机 token

  2. 放到 Cookie(XSRF-TOKEN)

  3. 前端每次非 GET请求时:

    从 Cookie 读,然后放到 Header:X-XSRF-TOKEN: e1a29ed4-8850-4e45-8ac5-833ccfad1896
  4. 服务端校验 Header 和 Cookie 是否一致

📌它不代表登录态,只是“你是本站页面发的请求”

三、结合Playwright

// 登录后 BrowserContext context = browser.newContext(); // Cookie 会自动带

1、从 Cookie 里读 XSRF

String xsrf = context.cookies().stream() .filter(c -> "XSRF-TOKEN".equals(c.name)) .findFirst() .map(c -> c.value) .orElse(null);

2、API 请求时带 Header

page.request().post("/api/xxx", RequestOptions.create() .setHeader("X-XSRF-TOKEN", xsrf) );

3、复用登录态(自动化测试常用)

推荐做法:storageState

context.storageState( new BrowserContext.StorageStateOptions() .setPath(Paths.get("state.json")) );

下次:

browser.newContext( new Browser.NewContextOptions() .setStorageStatePath(Paths.get("state.json")) );
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 9:39:50

双碳目标下综合能源系统低碳运行优化调度Matlab实现

双碳目标下综合能源系统低碳运行优化调度Matlab程序 包含光伏、风电、热电联产、燃气锅炉、电锅炉、电储能、碳捕集设备,考虑碳交易 以系统运行成本最小为目标函数 采用Yalmip+Cplex求解在双碳目标的大背景下,综合能源系统的低碳运行优化调度…

作者头像 李华
网站建设 2026/10/6 2:50:58

springboot+vue校园二手闲置物品拍卖系统 人脸识别

目录摘要开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 校园二手闲置物品拍卖系统结合SpringBoo…

作者头像 李华
网站建设 2026/10/13 0:33:06

计算机毕业设计,基于springboot的房屋租赁管理系统,附源码+数据库+论文,包远程安装调试运行

1、项目介绍 本文从用户的功能要求出发,建立了房屋租赁系统,系统中的功能模块主要是实现人中心、房屋类型管理、房屋信息、预约看房管理、合同信息管理、房屋报修管理、房屋评价管理、我要当房东管理、留言板管理、系统管理等功能部分;经过认…

作者头像 李华
网站建设 2026/10/13 10:24:28

计算机毕业设计,基于springboot的高校心理教育辅导系统,附源码+数据库+论文+开题,包远程安装调试运行

1、项目介绍 此高校心理教育辅导系统功能分析主要分为管理员功能模块、教师功能模块和学生功能模块三大模块,下面详细介绍这三大模块的主要功能: (1)管理员:管理员登陆后可对系统进行全面管理,管理员主要…

作者头像 李华