yqcloud-login-auth
SKILL.md
YQCloud OAuth 登录认证
概述
通过 OAuth 隐式授权流程(Implicit Grant)登录燕千云平台,获取 access_token。启动临时本地 HTTP 服务器作为回调地址,用户在浏览器中完成登录后,token 自动保存到 ~/.yqcloud_tmp/token.json。
触发条件
当用户需要:
- 登录燕千云 / YQCloud
- 获取 YQCloud access_token
- 提到"燕千云认证"、"yqcloud 登录"、"yqcloud token"
- 其他 skill 依赖 YQCloud token 且 token 不存在或已过期
认证流程
用户触发 → 启动本地服务器(端口49658) → 打开浏览器 → 用户登录
→ OAuth 回调携带 token → 前端提取并发送到服务器 → 存储 token → 服务器关闭
Token 存储
- 目录:
~/.yqcloud_tmp/ - 文件:
~/.yqcloud_tmp/token.json - 格式:
{
"access_token": "d39a5a21-0e6d-4958-8f58-974b07e5d8c5",
"token_type": "bearer",
"state": "",
"expires_in": "315359994",
"refresh_token": "b00bb352-cdbe-44d1-986a-06fdc0edb2fe",
"scope": "default"
}
执行步骤
1. 检查现有 Token
先检查是否已有有效 token:
cat ~/.yqcloud_tmp/token.json 2>/dev/null
如果 token 已存在,询问用户是否需要重新认证。
2. 执行认证
运行 OAuth 认证服务器脚本:
python3 "$(dirname "$0")/../skills/yqcloud-login-auth/scripts/oauth_server.py"
脚本行为:
- 在
localhost:49658启动临时 HTTP 服务器 - 自动打开浏览器访问 OAuth 授权页面
- 用户在浏览器中登录燕千云
- OAuth 回调将 token 通过 URL hash fragment 传回
- 前端 JavaScript 提取 token 并 POST 到服务器
- 服务器将 token 存储到
~/.yqcloud_tmp/token.json - 页面显示"认证成功",服务器自动关闭
3. 验证 Token
认证完成后验证 token 是否可用:
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $(cat ~/.yqcloud_tmp/token.json | python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])')" \
https://support.yqcloud.com/oauth/api/user
返回 200 表示 token 有效。
在其他脚本中使用 Token
读取已保存的 token:
ACCESS_TOKEN=$(python3 -c 'import json; print(json.load(open("'$HOME'/.yqcloud_tmp/token.json"))["access_token"])')
import json
from pathlib import Path
token_file = Path.home() / ".yqcloud_tmp" / "token.json"
token_data = json.loads(token_file.read_text())
access_token = token_data["access_token"]
故障排查
端口被占用
如果 49658 端口被占用:
lsof -i :49658
kill -9 <PID>
然后重新运行认证脚本。
浏览器未自动打开
手动在浏览器中访问:
https://support.yqcloud.com/oauth/oauth/authorize?response_type=token&client_id=support&state=&redirect_uri=http%3A%2F%2Flocalhost%3A49658
Token 文件不存在
确认认证流程是否完成。如果浏览器页面未显示"认证成功",可能是:
- 网络问题导致 OAuth 授权页面无法加载
- 用户取消了登录
- 回调服务器已提前关闭(Ctrl+C)
执行流程(给 Agent 参考)
- 使用 Bash 检查
~/.yqcloud_tmp/token.json是否存在 - 如果存在,使用 Read 读取并展示 token 概要(mask 敏感信息),使用 AskUserQuestion 询问是否重新认证
- 如果需要认证,使用 Bash 运行
python3 <skill_path>/scripts/oauth_server.py(注意:此命令会阻塞直到认证完成或用户中断) - 认证完成后,使用 Read 读取
~/.yqcloud_tmp/token.json确认 token 已保存 - 向用户报告认证结果
Weekly Installs
1
Repository
binjie09/zknow-skillsFirst Seen
3 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1