소스 정보
- 저장소
- openyida/yida-skills
- 최근 소스 활동
- 2026년 3월 15일 16:55
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 29
- 포크
- 12
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/openyida/yida-skills --skill yida-login명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| 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:通过管道将本技能输出传入