
agent-browser 认证模式实战登录流程、会话状态保存与恢复、OAuth/2FA 与安全最佳实践【免费下载链接】activepiecesAI Agents MCPs AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces本篇技术指南围绕本仓库 .agents/skills/agent-browser 技能包中面向 AI Agent 的浏览器自动化 CLI——agent-browser——的系统化认证方案展开。你将从零掌握它的标准登录流程打开页面、快照取引用、填充凭据、提交并校验、通过状态文件与 Auth Vault 实现一次登录、多次复用的会话持久化、OAuth/SSO 与 2FA 的人工介入处理以及 HTTP Basic Auth、Cookie 注入、Token 刷新等各类认证场景的落地脚本最后了解保护凭据与状态文件的工程规范。认证的核心工作流agent-browser的认证操作遵循技能包 SKILL.md 中定义的四步通用模式导航agent-browser open url打开登录页快照agent-browser snapshot -i获取页面交互元素及其引用e1、e2等交互使用引用执行fill、click、select等操作重新快照页面跳转或 DOM 变化后重新快照取得新的引用。认证只是这个模式的应用特例用fill填写邮箱与密码用click提交表单再用get url或wait --url验证登录是否真正成功。所有命令通过后台守护进程共享同一个浏览器实例因此可以用把多个命令链式拼接以提高效率但当后一个命令依赖前一个命令的输出例如快照发现引用后再交互时则应分开执行。基础登录流程references/authentication.md 给出的基础登录流程如下# 导航到登录页 agent-browser open https://app.example.com/login agent-browser wait --load networkidle # 获取表单元素 agent-browser snapshot -i # Output: e1 [input typeemail], e2 [input typepassword], e3 [button] Sign In # 填充凭据 agent-browser fill e1 userexample.com agent-browser fill e2 password123 # 提交 agent-browser click e3 agent-browser wait --load networkidle # 验证登录成功 agent-browser get url # Should be dashboard, not login几个关键细节wait --load networkidle确保页面网络活动完全平静后再继续避免在表单尚未渲染完成时就取快照snapshot -i只输出交互元素输入框、按钮、链接等并为每个元素分配eN形式的引用比直接输出整棵可访问性树更精炼是认证场景的推荐用法提交后必须验证结果。最直接的方式是get url判断是否已离开登录页更健壮的做法是用wait --url **/dashboard等待 URL 模式匹配认证成功后引用会失效页面已跳转后续操作前需要重新snapshot -i。如果需要定位登录表单但拿不到稳定引用references/commands.md 还提供了语义定位器作为替代agent-browser find text Sign In click、agent-browser find label Email fill usertest.com、agent-browser find placeholder Password type ...等。保存认证状态一次登录多次复用手动保存与恢复登录成功后把浏览器上下文cookies、localStorage、sessionStorage、origins整体导出为状态文件后续会话直接恢复跳过登录# 登录后保存认证状态 agent-browser open https://app.example.com/login agent-browser snapshot -i agent-browser fill e1 userexample.com agent-browser fill e2 password123 agent-browser click e3 agent-browser wait --url **/dashboard # 保存认证状态 agent-browser state save ./auth-state.json恢复时先加载状态文件再直接导航到受保护页面# 加载已保存的认证状态 agent-browser state load ./auth-state.json # 直接导航到受保护页面 agent-browser open https://app.example.com/dashboard # 验证已认证 agent-browser snapshot -i状态文件的内部结构references/session-management.md 说明了状态文件的 JSON 结构理解它有助于排查为什么恢复后依然未登录类问题{ cookies: [...], localStorage: {...}, sessionStorage: {...}, origins: [...] }由于它包含会话令牌与认证凭据这份文件必须被当作敏感资产对待详见后文安全最佳实践。会话级持久化自动保存/恢复除了显式的state save/loadagent-browser还支持通过--session-name在浏览器重启后自动保存与恢复 cookies 和 localStorage状态落盘在~/.agent-browser/sessions/目录# 自动保存 cookies 与 localStorage agent-browser --session-name myapp open https://app.example.com/login # ... 执行登录流程 ... agent-browser close # 状态自动保存 # 下次启动时状态自动加载 agent-browser --session-name myapp open https://app.example.com/dashboard # 管理已保存的状态 agent-browser state list agent-browser state show myapp-default.json agent-browser state clear myapp agent-browser state clean --older-than 7Auth Vault技能包推荐方式SKILL.md 推荐用Auth Vault保存凭据凭据以AGENT_BROWSER_ENCRYPTION_KEY加密后存储登录时由工具代填LLM 全程看不到密码# 一次性保存凭据用 stdin 传入密码避免进入 shell 历史 echo pass | agent-browser auth save github --url https://github.com/login --username user --password-stdin # 用已保存的 profile 登录 agent-browser auth login github # 管理 profile agent-browser auth list agent-browser auth show github agent-browser auth delete github认证模板 templates/authenticated-session.sh 的头部注释也明确建议优先使用 Auth Vault 而非自行维护状态文件echo pass | agent-browser auth save myapp --url login-url --username user --password-stdin随后agent-browser auth login myapp。恢复认证状态状态恢复的核心思想是优先复用失效才重登。推荐封装成幂等的 shell 脚本——检测到状态文件存在就先加载并探测会话有效性有效则直接进入业务页面失效或不存在则走完整登录流程并重新保存。模板 templates/authenticated-session.sh 提供了完整可参考的实现骨架#!/bin/bash # 伪代码展示恢复逻辑完整版见仓库模板 STATE_FILE${2:-./auth-state.json} if [[ -f $STATE_FILE ]]; then agent-browser state load $STATE_FILE agent-browser open https://app.example.com/dashboard # 校验仍停留在 login/signin 页说明会话已过期 CURRENT_URL$(agent-browser get url) if [[ $CURRENT_URL *login* || $CURRENT_URL *signin* ]]; then echo Session expired, re-authenticating... # 执行完整登录流程 ... agent-browser state save $STATE_FILE fi else # 首次登录open - snapshot -i - fill - click - wait - state save : fi模板还内置了发现模式首次运行时先打开登录页并打印snapshot -i输出让操作者识别出用户名、密码、提交按钮分别对应哪个eN引用再手工填入登录段避免猜测引用导致误操作。OAuth / SSO 流程OAuth/SSO 的特点是多次跨域重定向从业务站点跳到身份提供方如 Google、GitHub、企业 IdP认证后再跳回业务站点。用wait --url按 URL 模式切换关注的页面即可# 开始 OAuth 流程 agent-browser open https://app.example.com/auth/google # 自动处理重定向等跳转到 Google agent-browser wait --url **/accounts.google.com** agent-browser snapshot -i # 填写 Google 凭据 agent-browser fill e1 usergmail.com agent-browser click e2 # Next 按钮 agent-browser wait 2000 agent-browser snapshot -i agent-browser fill e3 password agent-browser click e4 # Sign in 按钮 # 等待跳回业务站点 agent-browser wait --url **/app.example.com** agent-browser state save ./oauth-state.json要点**是 Playwright 风格的 URL 通配符**/accounts.google.com**匹配任意协议、主机与路径中包含该片段的地址每次重定向后必须重新snapshot -i因为跨域后所有旧引用全部失效Google 登录页的下一步/登录按钮没有稳定文本时可结合 SKILL.md 的标注截图能力agent-browser screenshot --annotate获得带编号的可视化元素图再按编号引用点击流程结束后立即state save把 OAuth 回调后颁发的会话令牌固化下来。二次认证2FA2FA 验证码通常无法由 Agent 自动获取references/authentication.md 给出的策略是人工介入 长超时等待# 用凭据登录--headed 显示浏览器窗口便于人工操作 agent-browser open https://app.example.com/login --headed agent-browser snapshot -i agent-browser fill e1 userexample.com agent-browser fill e2 password123 agent-browser click e3 # 等待用户手动完成 2FA验证码、短信、认证器 App 等 echo Complete 2FA in the browser window... agent-browser wait --url **/dashboard --timeout 120000 # 2FA 完成后保存状态 agent-browser state save ./2fa-state.json工程上的关键启示2FA 通过后保存的状态文件价值极高——后续所有自动化会话都可以直接state load复用无需再次人工介入。但这也意味着该文件一旦泄露危害极大必须加密存放并严格控制访问权限。HTTP Basic Auth针对使用 HTTP Basic Authentication 的站点凭据需要在导航之前注入这样首次请求即可携带Authorization头完成认证# 导航前设置凭据 agent-browser set credentials username password # 导航到受保护资源 agent-browser open https://protected.example.com/apireferences/commands.md 中该命令的别名为auth与浏览器设置viewport、device、geo、headers、media 等同属set命令族。注意这里的凭据会以明文形式出现在 shell 命令中建议通过环境变量引用见安全最佳实践。Cookie 注入认证部分站点的会话基于特定 Cookie可以绕过登录直接注入# 设置认证 cookie agent-browser cookies set session_token abc123xyz # 导航到受保护页面 agent-browser open https://app.example.com/dashboardcookies命令族还包括读取与清理agent-browser cookies # 查看所有 cookie agent-browser cookies clear # 清除全部 cookieCookie 注入适合三类场景已知会话令牌格式的后端 API 调试、从其他渠道如agent-browser storage local读到的 token迁移会话、以及测试会话过期后的降级行为。对设置了HttpOnly的 Cookie页面脚本无法读取但cookies set仍可注入。Token 刷新处理对令牌会过期的会话认证文档给出了一个 shell 包装脚本思路先加载状态探测是否被重定向回登录页是则重新认证并回写状态文件#!/bin/bash # 处理 Token 刷新的包装脚本 STATE_FILE./auth-state.json # 尝试加载已有状态 if [[ -f $STATE_FILE ]]; then agent-browser state load $STATE_FILE agent-browser open https://app.example.com/dashboard # 检查会话是否仍然有效 URL$(agent-browser get url) if [[ $URL */login* ]]; then echo Session expired, re-authenticating... # 执行全新登录 agent-browser snapshot -i agent-browser fill e1 $USERNAME agent-browser fill e2 $PASSWORD agent-browser click e3 agent-browser wait --url **/dashboard agent-browser state save $STATE_FILE fi else # 首次登录 agent-browser open https://app.example.com/login # ... 登录流程 ... fi这个模式可以进一步与 references/session-management.md 的并行会话能力结合为每次刷新任务使用独立的--session命名会话并用timeout 60包裹长任务避免脚本悬挂。安全最佳实践references/authentication.md 明确列出的四条安全铁律1. 绝不提交状态文件—— 其中包含会话令牌echo *.auth-state.json .gitignore2. 凭据一律使用环境变量避免明文出现在命令历史与日志中agent-browser fill e1 $APP_USERNAME agent-browser fill e2 $APP_PASSWORD3. 自动化结束后清理现场agent-browser cookies clear rm -f ./auth-state.json4. CI/CD 中使用短生命周期会话不持久化状态# CI 中不持久化状态 agent-browser open https://app.example.com/login # ... 登录并执行操作 ... agent-browser close # 会话结束不留痕模板 templates/authenticated-session.sh 印证了第 2 条其头部注释声明依赖APP_USERNAME与APP_PASSWORD两个环境变量并在登录段用: ${APP_USERNAME:?Set APP_USERNAME environment variable}做缺失即报错的强制校验。此外技能包还提供两层可选的安全加固均来自 SKILL.md域白名单AGENT_BROWSER_ALLOWED_DOMAINS限制只能导航到信任域名子资源请求、WebSocket、EventSource 到白名单外的连接同样被阻断认证场景下建议把 IdP 域名一并加入白名单加密静态状态设置export AGENT_BROWSER_ENCRYPTION_KEY$(openssl rand -hex 32)后--session-name自动保存的会话状态会加密落盘内容边界AGENT_BROWSER_CONTENT_BOUNDARIES1把页面来源的输出用标记包裹帮助 LLM 区分工具输出与不可信的页面内容降低提示注入风险。小结agent-browser为 AI Agent 提供了一条从表单登录到会话复用再到安全清理的完整认证链路基础登录依赖open → snapshot -i → fill/click → wait --url → get url的五步范式状态持久化有state save/load、--session-name自动会话与加密 Auth Vault 三档方案分别对应不同安全等级OAuth/SSO 靠 URL 通配等待串起重定向链2FA 靠--headed加长超时引入人工环节HTTP Basic Auth 与 Cookie 注入覆盖了非表单类认证Token 刷新脚本则把探测过期→重新认证→回写状态固化为可复用资产。配合环境变量凭据、.gitignore 隔离、会话清理与可选的安全加固这套方案可以直接落地到爬虫、Web 应用回归测试与 CI 冒烟验证等真实自动化任务中。需要进一步了解状态文件结构、并行会话隔离时可继续阅读 references/session-management.md需要完整命令参数时参见 references/commands.md开箱即用的登录复用脚本见 templates/authenticated-session.sh。【免费下载链接】activepiecesAI Agents MCPs AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考