Agent Skills
返回列表
💻

平台登录会话获取

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ee9b2ae1/pacp-system-login 技能。

技能介绍

要解决什么问题

pacp 系列技能(如 pacp-build-form、pacp-build-list)在调用 PowerData 平台 API 之前,手里必须攥着一个有效的 JSESSIONID。问题不在于怎么填表单,而在于这个会话凭证是 HttpOnly cookie:document.cookie 读不到,cookieStore 也读不到。

于是本技能要解决三件事:怎么登进去、怎么把凭证从浏览器里抠出来、怎么让凭证在多个 skill 之间复用。

核心能力与工作方式

唯一的固定依赖是 chrome-devtools MCP,导航、探测、填写、取值全靠它;视觉识别能力(验证码识别、选择器兜底)按运行时环境分层降级,不硬编码任何具体 MCP。

整体流程分三条路径自动选择:

  • 查缓存:先读 cwd/.pacp/session.json,优先用自带 CLI scripts/check_session.js 调 getcurrentuser 校验有效性,不开浏览器、3 秒内完成;只有怀疑假阴性时才退回浏览器 evaluate_script。
  • 自动登录模式:用户提供地址加账号加密码时,直接导航到项目根网址(去掉 /app/index.html 等前端路由,省一次 SPA 跳转),按已知选择器 #XTZH/#YHPD/#login 优先、启发式匹配兜底、视觉识别再兜底的顺序定位元素,用 fill 模拟键盘输入——禁止用 evaluate_script 设 value,平台前端对密码有加密逻辑,绕过事件处理会直接 401。
  • 用户自登模式:兜底王牌。仅凭地址时打开登录页,提示用户自己登,不轮询,等用户说一声再继续。浏览器对用户可见可操作,理论上不可能完全卡死。

取凭证是技术核心:主动发一次 credentials: 'include' 的 fetch,再从网络请求列表的 getcurrentuser 请求头里读 cookie: 行。注意列表只保留自上次导航以来的请求,hash 路由变化不会清记录,整页跳转才会。

适用边界与注意点

  • JSESSIONID 是会话级 cookie(expires: -1),浏览器关闭或服务重启即失效,缓存校验失败属正常,重走登录流程即可。
  • 同账号重复登录会互踢旧 session,缓存优先复用恰好缓解这一点。
  • 全角半角是高频坑:密码里的 @ ! # 若被填成全角 @ ! #(从聊天工具复制时极易发生),登录会报用户名或密码错误。排查方法:evaluate 查密码框 value 的 charCode,半角 !=33、@=64,全角则分别为 65281、65312。
  • 滑块验证码没有可靠自动手段,直接降级人工;图片验证码看视觉能力,短信验证码由用户提供。
  • session.json 以系统地址为 key,天然支持同时操作多个环境。

使用场景

  • 使用 pacp-build-form 搭建动态表单前,需要先登录 PowerData 平台拿到 JSESSIONID。
  • 调用 PowerData 平台 API 时收到 401,需要重新获取有效会话凭证并重试原请求。
  • 构建动态列表(pacp-build-list)时发现缓存里的会话已过期,需要重新登录并刷新缓存。
  • 不愿在对话里填写账号密码,希望在可见浏览器手动登录后由技能取回会话凭证。

适合人员

  • 用 pacp 系列技能搭建动态表单与列表的前端工程师,需要有效的平台会话凭证才能继续调 API。
  • 维护 PowerData 平台集成的后端工程师,常遇到 401 会话过期,需要排查并刷新凭证。
  • 编写自动化脚本但不便在对话里提交账号密码的开发者,倾向手动登录后取凭证。
  • 同时操作多个 PowerData 环境、需要按系统地址分别缓存和复用会话的测试人员。