ワンクリックで
yida-login
宜搭平台登录态管理技能,通过 Playwright 管理登录态(Cookie 持久化 + 扫码登录),获取 CSRF Token。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
宜搭平台登录态管理技能,通过 Playwright 管理登录态(Cookie 持久化 + 扫码登录),获取 CSRF Token。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
宜搭平台退出登录技能,清空本地 Cookie 缓存内容。
宜搭自定义页面开发技能,包含宜搭表单 JS API 调用(增删改查/流程/工具类共 27 个)、React 16 JSX 组件开发规范、状态管理模式与编码约束。
宜搭表单页面创建与更新技能,支持创建新表单(saveFormSchemaInfo + saveFormSchema + updateFormConfig)和更新已有表单(getFormSchema + saveFormSchema + updateFormConfig),支持 19 种字段类型(含 SerialNumberField 流水号)和字段增删改操作。
宜搭自定义页面创建技能,通过调用 saveFormSchemaInfo 接口快速创建自定义展示页面。
宜搭表单 Schema 获取技能,通过调用 getFormSchema 接口获取指定表单的完整 Schema 结构,用于分析字段定义、组件配置、确认字段 ID(fieldId)等。
宜搭自定义页面发布技能,将 JSX 源码经 Babel 编译、UglifyJS 压缩后构建 Schema,并通过 saveFormSchema 接口部署到宜搭平台。
| name | yida-login |
| description | 宜搭平台登录态管理技能,通过 Playwright 管理登录态(Cookie 持久化 + 扫码登录),获取 CSRF Token。 |
| license | MIT |
| compatibility | ["opencode","claude-code"] |
| metadata | {"audience":"developers","workflow":"yida-auth","version":"1.0.0","tags":["yida","auth","login","cookie"]} |
本技能提供宜搭平台的登录态管理能力,支持 Cookie 持久化和自动验证,首次使用需扫码登录,后续自动复用 Cookie。
当以下场景发生时使用此技能:
场景:手动触发扫码登录 命令:
python3 .claude/skills/yida-login/scripts/login.py
输出:
{"csrf_token":"b2a5d192-xxx","corp_id":"dingxxx","user_id":"1955225xxx","base_url":"https://abcd.aliwork.com"}
场景:CSRF Token 失效但 Cookie 有效 命令:
python3 .claude/skills/yida-login/scripts/login.py --refresh-csrf
python3 .claude/skills/yida-login/scripts/login.py
无需任何参数,登录地址从项目根目录的 config.json 中读取(loginUrl 字段),登录后可能跳转到 abcd.aliwork.com 等域名。
输出:登录成功后,将 csrf_token、base_url(跳转后的实际域名)和 Cookie 信息以 JSON 格式输出到 stdout,同时 Cookie 持久化到项目根目录的 .cache/cookies.json。
⚠️ 重要:
base_url取自登录成功后浏览器实际跳转到的域名,而非config.json中配置的loginUrl或defaultBaseUrl。例如,即使loginUrl配置为https://www.aliwork.com,如果你的账号所属组织对应的是abcd.aliwork.com,平台会自动跳转,最终base_url将是https://abcd.aliwork.com。后续所有 API 请求(包括yida-publish发布)都会使用这个base_url。如需发布到特定域名,请确保config.json中的loginUrl指向该域名对应的组织,并且你的账号属于该组织。
项目根目录通过向上查找
config.json或.git目录来定位。
.cache/cookies.json 缓存(包含 Cookie 和 base_url)csrf_token(tianshu_csrf_token)、corp_id 和 user_id(tianshu_corp_user),无需访问任何页面tianshu_csrf_token,视为失效,打开有头浏览器让用户扫码登录base_url(从登录后实际跳转的 URL 获取)pip install playwright && playwright install chromium)yida-login/
├── SKILL.md # 本文档
└── scripts/
└── login.py # 登录脚本
项目根目录/
├── config.json # 全局配置(loginUrl、defaultBaseUrl)
└── .cache/
└── cookies.json # 登录态缓存(运行时自动生成,含 Cookie + base_url)
脚本成功执行后,最后一行输出 JSON:
{
"csrf_token": "b2a5d192-db90-484c-880f-9b48edd396d5",
"corp_id": "ding9a0954b4f9d9d40ef5bf40eda33b7ba0",
"user_id": "19552253733782",
"base_url": "https://abcd.aliwork.com",
"cookies": [...]
}
csrf_token从 Cookietianshu_csrf_token的 value 中提取;corp_id和user_id从 Cookietianshu_corp_user的 value 中提取,格式为{corpId}_{userId},按最后一个_分隔。
base_url是登录后浏览器实际跳转到的域名(如https://abcd.aliwork.com),可能与config.json中的loginUrl不同。其他脚本应使用此值作为 API 请求的基础地址,而非硬编码域名。
其他脚本可通过管道接收并解析 stdout 最后一行获取登录态信息。
.cache/cookies.json 文件格式(兼容旧版纯 Cookie 数组):
{
"cookies": [...],
"base_url": "https://abcd.aliwork.com"
}
csrf_token、corp_id、user_id 不存储在缓存中,每次启动时直接从 Cookie 列表中提取(tianshu_csrf_token 和 tianshu_corp_user 字段)。
所有脚本(login.py 及各 JS 脚本)从项目根目录的 config.json 读取配置,不再硬编码 URL:
{
"loginUrl": "https://www.aliwork.com/workPlatform",
"defaultBaseUrl": "https://www.aliwork.com"
}
| 字段 | 说明 |
|---|---|
loginUrl | 扫码登录页面地址(登录成功后平台可能自动跳转到其他域名) |
defaultBaseUrl | API 请求的默认基础地址(仅当 base_url 未从登录态中获取时作为兜底使用,正常流程不会用到) |
各 skill 脚本通过解析接口响应体的 errorCode 字段来判断登录态异常,并自动调用本技能处理:
| errorCode | 含义 | 处理方式 |
|---|---|---|
"TIANSHU_000030" | csrf 校验失败(csrf_token 过期) | 调用 login.py --refresh-csrf 无头刷新 csrf_token,无需重新扫码 |
"307" | 登录状态已过期(Cookie 失效) | 调用 login.py 触发完整重新登录(可能需要扫码) |
注意:错误判断基于响应体 JSON 的
errorCode字段,而非 HTTP 状态码。
清空本地 Cookie 缓存文件内容即可完成退出,下次调用任意技能时将自动触发重新扫码登录:
echo -n "" > .cache/cookies.json
适用场景:
注意:Cookie 缓存文件位于项目根目录(含
README.md或.git的目录)的.cache/目录下。退出登录不影响已部署的页面和已保存的数据。
yida-publish:发布时自动调用本技能获取登录态yida-create-app、yida-create-page、yida-create-form-page:通过管道将本技能输出传入