SKILL.md 3.1 KB


name: qiwei-login

description: 通过 Fmode 网关转发的企业微信接口完成扫码登录和订阅管理。适用于首次使用、设备掉线、qiwei_api_call 返回 needs_login、订阅未开通或席位不足;客户端只使用 Fmode 鉴权 token 和 uid,企业微信接口访问凭据由 Fmode 网关管理。

企业微信扫码登录

严格流程

  1. 检查订阅:调用 qiwei_subscription_status
    • 未订阅或已到期:调用 qiwei_subscribe
    • 席位已满:用 qiwei_subscribe 传新的总 seats 数增购;
    • 余额不足:引导用户充值飞马余额后重试。
  2. 检查设备:调用 qiwei_login_status
    • online=true:无需重新登录;
    • 未配置或离线:继续下一步。
  3. 生成二维码:调用 qiwei_login_start
    • 工具通过 /api/qiwei/login/start 请求 Fmode 网关;
    • 二维码保存到 outputs/qiwei-login-qrcode.png,默认打开 HTML 预览;
    • 把二维码展示给用户,用手机企业微信扫码并确认。
  4. 轮询状态:每 3–5 秒调用 qiwei_login_check
    • -1 / 1:继续等待;
    • 0:可传 manual: true 尝试免扫码登录;
    • 2:登录成功;
    • 4:用户取消,重新调用 qiwei_login_start
    • 10:进入验证码流程。
  5. 验证码:状态 10 时向用户索要手机端显示的 6 位验证码,调用 qiwei_login_verify,然后再次检查状态。
  6. 验证业务链路:登录成功后调用 qiwei_api_call(例如 user.getProfile)。

新账号与多账号切换

  • “添加账号”必须为新账号生成新的 uid,启动、轮询和验证码请求始终携带同一个新 uid;新 uid 不复用当前账号的 guid
  • 扫码完成前使用 persistConfig=false,不提前覆盖当前项目配置;状态为 2 后再保存新账号并调用 Dashboard 的账号切换接口。
  • 切换成功后同时持久化 QIWEI_UID 与对应 QIWEI_GUID;新账号没有 GUID 时必须清除旧 GUID,不得形成跨账号组合。
  • 浏览器账号列表按 workspaceId 隔离。同一浏览器访问多个克隆项目时,不得把其他项目的当前账号自动写入本项目。
  • 用户取消扫码或切换接口失败时恢复原当前账号;已经保存的其他账号继续保留,可再次选择。
  • 切换账号会切换独立 Workbench 数据库和 Claude 客户 Session;监听重启只恢复连接,不改变原有审核/自动/人工模式。

配置

  • QIWEI_API_BASE 默认 https://server.fmode.cn/api/qiwei
  • Fmode token 自动从 Claude Code / Fmode 配置读取,也可显式设置 QIWEI_AUTH_TOKEN
  • QIWEI_UID 未配置时自动生成并持久化;
  • 不读取、保存或要求用户提供企业微信接口访问凭据。

安全约定

  • 不展示或记录 Authorization 和 Fmode token;
  • 不向用户暴露接口服务提供方名称、相关域名或控制台;
  • 不绕过 Fmode 网关直连内部服务;
  • 不通过 qiwei_api_call 调用 /login/*/client/*
  • 不在对话、日志或测试报告中回显 Token、GUID 或完整账号标识。