Bruno Cookie 持久化:重启不丢会话的 3 步配置法 Bruno Cookie 持久化:重启不丢会话的 3 步配置法【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno你大概遇到过这种情况:登录接口跑通了,顺手把 session cookie 记下来,结果一重启 Bruno,再发同一个请求就变成 401——会话又没了,得重新走一遍登录流程。Bruno 的 Cookie 持久化机制就是为了解决这个痛点:它把每条 cookie 加密后写进本地存储文件,应用重启时自动回填,请求发出去时仍带着有效的会话标识。读完整篇文章,你能掌握:Cookie 存储文件的结构与加密原理、三条命令级别的手动配置流程、多环境与 CLI 自动化下的用法,以及存储文件损坏时的排查路径。存储原理:Cookie 是怎么活过应用重启的Bruno 采用本地文件优先的设计哲学——集合、环境变量存在你的目录里,Cookie 同理,只是它多了一层加密。核心逻辑在 Cookie 存储实现 中:首次启动生成密钥:应用在你的用户数据目录下创建cookies.json,并生成一个 256 位随机 passkey,加密后以encryptedPasskey字段存回该文件。按域名分组落盘:每次请求产生或你手动添加 cookie 后,cookie 会按 domain 分组,value 字段用 passkey 加密后写入cookies字段。写入做了 5 秒防抖,避免高频请求时的磁盘 IO 抖动。启动时自动回填:再次启动时,存储模块解密密钥、逐条解密 cookie,重新装载进内存中的 cookie jar,后续请求自动带上,你不需要做任何操作。之所以选本地文件而不是云端同步,是因为会话数据天然属于机器状态——它跟着你的测试环境走,而不是跟着集合仓库走,这样密钥、token 之类的敏感值就不会被误提交进 Git。实操:三步完成手动 Cookie 持久化配置打开 Bruno 后,状态栏有一个 Cookie 入口(交互逻辑可参考 Cookie 持久化测试),以下是手动录入一条会话 cookie 的完整流程:第 1 步:打开 Cookie 管理面板点击状态栏的 Cookie 图标。如果没有存过任何 cookie,面板中央会显示一个 Add Cookie 按钮,直接点击即可。第 2 步:填写字段并保存字段作用填写要点keycookie 名称与服务端 Set-Cookie 头中的名称一致,如sessionvaluecookie 值从浏览器开发者工具或登录响应中复制domain归属域名与目标 API 域名一致,如example.compath生效路径一般填/,特殊路由再收窄secure仅 HTTPS 传输生产/预发环境勾选,本地 http 调试可不勾httpOnly禁止脚本读取与来源保持一致,通常勾选填完点 Save,cookie 会出现在列表中并加密落盘。第 3 步:重启验证完全退出应用再启动,重新打开 Cookie 面板,确认刚才的 domain 仍在列表里。这一步对应 持久化验收测试 的做法:同一用户数据目录下二次启动,cookie 必须可读回。日常维护也在这个面板里完成:单条删除、按域名一键清空(带二次确认)、关键词搜索,实现见 Cookie 管理组件。延伸场景:多环境与 CLI 自动化结合环境变量做多环境切换把 cookie 的 value 指向环境变量引用,不同环境(测试/预发/生产)各配一份变量,切换环境时会话 cookie 自动跟着变。环境变量持久化的写法可以参考 setEnvVar 持久化测试。纳入版本控制的团队工作流Cookie 值本身不入库,但该配哪些 cookie、domain/path 是什么这类结构信息可以写进集合文档,配合集合的版本管理让团队按同一套约定初始化会话:CLI 场景保持会话一致Bruno 的命令行工具可以在 CI 中跑集合,配合本地已持久化的 cookie 或环境文件,让自动化任务不必每次重新登录。CLI 的命令与 runner 源码在 bruno-cli/src 下:避坑:存储文件损坏怎么排查最常见的故障是cookies.json里的密钥损坏或文件被误改。Bruno 的设计是降级而非崩溃:passkey 解不开时,面板仍会列出所有 cookie 的 domain/path,只是 value 显示为空——你可以从浏览器重新复制值,用编辑功能回填,存储会重建加密。损坏密钥测试 正是模拟了把encryptedPasskey改成非法值后应用仍能正常展示列表的场景。遇到 cookie 丢失或读不回时,按这个顺序排查:确认文件存在且合法:检查用户数据目录下cookies.json是否为合法 JSON,cookies字段是否存在;确认写入权限:应用目录是否只读、磁盘是否写满,防抖期间退出应用也可能丢失最近 5 秒内的变更;检查密钥字段:encryptedPasskey若为空或乱码,删除该文件让应用重新生成密钥(会清空全部已存 cookie,先导出再操作);确认 domain 拼写:cookie 按域名匹配请求,域名差一个点都不会被携带。小结Cookie 按 domain 分组、value 加密后存入cookies.json,重启自动回填手动配置三要素:打开状态栏 Cookie 面板 → 填字段保存 → 重启验证多环境用环境变量绑定 cookie 值,团队约定写进集合文档密钥损坏不崩溃,面板降级展示,重填值即可恢复排查顺序:文件合法性 → 写权限 → 密钥字段 → domain 拼写想深入理解本地数据存储的整体设计,可以看看 中文文档;更多边界行为(防抖、加密失败回退)直接读 存储源码 会更清楚。你在实际项目里踩过哪些会话丢失的坑,欢迎在 Issue 区交流。【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

GLM-5.3开源:智能体编程与网络防御实战指南

GLM-5.3开源:智能体编程与网络防御实战指南

过去两年里,开源大模型的发展节奏明显加快,每隔一段时间就有新权重、新架构、新应用范式出现。尤其是在智能体(Agent)和安全领域,模型不再只是“问答工具”,而是逐渐变成了能调用工具、能处理任务、能辅助分…

2026/8/31 10:44:57
AI客服智能体如何接入实时搜索API,破解大模型知识时效性难题

AI客服智能体如何接入实时搜索API,破解大模型知识时效性难题

在 AI 客服、智能体工作流越来越普及的当下,一个很现实的问题浮出水面:大模型自身的知识库是有截止日期的,而企业大客户的客服场景又偏偏对时效性信息极其敏感。比如用户问“你们近期有没有新的数据安全认证”“某条产品的定价页面是不是刚调…

2026/8/31 10:44:57
Vale:面向自然语言文本的Linter,用规则统一技术文档风格

Vale:面向自然语言文本的Linter,用规则统一技术文档风格

Vale 是一个面向自然语言文本的 Linter,英文定位就叫 Linter for Prose。简单说,它用命令行方式帮你检查散文、技术文档、博客文章里的用词、术语、一致性和风格问题,而不是检查语法错误或者做排版。这个定位让它和拼写检查器、Markdown 格式…

2026/8/31 10:44:57
freellmapi揭秘:从免费大模型API聚合到自建轻量网关实践

freellmapi揭秘:从免费大模型API聚合到自建轻量网关实践

最近在 GitHub 上翻 AI 开源项目时,频繁看到freellmapi这个关键词。很多开发者把它当成“免费的 LLM API 入口”来搜索,也有人误以为它是一个可以直接拿到 Key 的网站。我把相关项目资料、热词讨论和开源仓库的常见组织方式梳理了一遍,并结合…

2026/8/31 10:44:57
Java面试金九银十突击指南:并发编程+Spring AI+RAG全覆盖

Java面试金九银十突击指南:并发编程+Spring AI+RAG全覆盖

金九银十这一波窗口期,是很多 Java 开发者的年度重点。今年和往年最明显的区别是:AI 大模型不再只是算法团队的专属话题,它已经渗透到后端岗位的 JD、面试题和项目考察里。往年准备 Java 面试,背熟八股文、刷一批 LeetCode、准备好…

2026/8/31 10:44:57
每日软体测试1.0落地指南:小团队如何守住核心路径

每日软体测试1.0落地指南:小团队如何守住核心路径

每日软体测试,说穿了,就是每天用一套固定流程,把软件最核心的功能快速过一遍,确保前一天改动的东西没有把旧功能搞坏。这个动作听起来简单,真正坚持下来的人其实不多。有人觉得太浪费时间,有人觉得手工点一…

2026/8/31 10:39:56