当前位置: 首页 > news >正文

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")) );
http://www.jsqmd.com/news/194519/

相关文章:

  • AI Agent太香了!给大模型装上“记忆+规划+手脚“,编程小白也能秒变效率大神!
  • 2026最新多功能清洁剂工厂top5推荐榜,广东广州等地优质公司及批发源头厂家深度解析/选择指南 - 全局中转站
  • playwright工具(二)获取token应用于mcp
  • 计算机毕业设计,基于springboot的房屋租赁管理系统,附源码+数据库+论文,包远程安装调试运行
  • 大模型开发必备!一张图看懂AI Agent!五层架构深度剖析,从Prompt到Action的完整闭环
  • playwright工具(一)自动打开浏览器
  • 【Azure Web App】Github Action部署Jar包到App Service报400错误
  • 杂记 - 状态模式 VS. 责任链模式
  • 【干货】Google最新AI Agent报告出炉:小白程序员也能5分钟上手企业级Agent开发!效率直接翻倍,2026年你的工作将被彻底重构!
  • 托盘目标检测数据集VOC+YOLO格式4517张1类别
  • Windows OLE 零点击远程代码执行漏洞(CVE-2025-21298)技术分析与防护
  • 未来已来!Android Studio的AI Agent让编程变得如此简单,开发者:这比antigravity还牛!小白也能秒变大神,不会你就真的out了!
  • geo优化排名系统---内容式生成搜索引擎逻辑开发
  • 吐血推荐8个AI论文工具,助研究生轻松搞定论文写作!
  • 想高薪!0基础怎么转行做AI,2026挑战三个月转行AI大模型岗,需要多久?
  • 笔记本外接屏突然黑屏?我踩了 3 个坑,最后靠回退 N 卡驱动救了急
  • 英语_阅读_Baduanjing_待读
  • PID控制算法十年演进(2015–2025)
  • AI coding 智能体设计系列-03-路径上下文-如何给材料而不喂爆上下文
  • 零基础也能玩转大模型!5分钟带你从入门到精通AI智能体开发,小白程序员直接起飞!
  • 大模型学习路线图:程序员入门到精通(含300集视频教程+免费资源)_大模型学习路线(2026最新)神仙级大模型教程分享
  • CF1202E You Are Given Some Strings...
  • 2026最新银条饰品生产公司top5推荐,湖南郴州等地优质工厂/供货商解析及选择指南 - 全局中转站
  • 2026最新洗衣片工厂top5推荐榜,广东广州等地优质公司及批发源头厂家深度解析/选择指南 - 全局中转站
  • PyBullet十年演进(2015–2025)
  • 2026最新银饰生产公司top5推荐,湖南郴州等地优质工厂/供货商解析及选择指南 - 全局中转站
  • 基于非对称纳什谈判的多微网电能共享运行优化:MATLAB 实现探秘
  • 风光储互补发电系统直流微网:Simulink建模与控制策略探索
  • 卡尔曼滤波十年演进(2015–2025)
  • Nginx 七大应用场景(附配置)