mcpField
C
chanjing-credentials-guard

chanjing-credentials-guard

github.com/chanjing-ai安全2276 次安装6 天前更新
代码仓库

关于 chanjing-credentials-guard

Chanjing Credentials Guard 是供 Chanjing 服务使用者配置和校验本地凭据的技能。它引导设置 AK/SK、打开登录页并管理 Token 有效期,不会在对话中索取密钥。

主要功能

  1. 01检查本地 AK/SK 配置
  2. 02引导在本地设置凭据
  3. 03打开 Chanjing 登录页
  4. 04检查并刷新访问 Token
  5. 05避免在对话中处理密钥

适用场景

  1. 01在本地配置 Chanjing 凭据
  2. 02凭据缺失或无效时恢复配置
  3. 03检查 Token 是否需要刷新

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chanjing-ai/chan-skills --skill chanjing-credentials-guard

安装后在 Claude Code 中输入/chanjing-credentials-guard确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.yaml
reference.md
scripts/
chanjing_config.py
chanjing_get_token.py
open_login_page.py

详细介绍

Chanjing Credentials Guard

功能说明

仅通过本地命令引导用户配置/校验蝉镜 AK/SK 与 Token,打开登录页;不在对话中索取密钥。可配合其它 Chanjing 技能使用。

运行依赖

  • python3 与 scripts/chanjing_config.py、scripts/open_login_page.py、scripts/chanjing_get_token.py 等

环境变量与机器可读声明

  • 环境变量键名与说明:manifest.yaml(environment 段)及本文
  • 变量、写盘路径与权限:manifest.yaml

使用命令

  • ClawHub(slug 以注册表为准):clawhub run chanjing-credentials-guard
  • 本仓库:python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

运行时机

  1. 当用户要求配置/获取 Chanjing 密钥(AK/SK)时:使用此技能引导用户进行本地设置。
  2. 调用 Chanjing API 前凭据缺失/无效时:使用此技能恢复本地配置。

此技能是本地凭据指南,不是跨技能的运行时依赖。

执行流程

1. Check if local AK/SK exists
   └─ No  → Run open_login_page.py (open login in browser) → Ask user to run local config command
   └─ Yes → Continue

2. Check if local Token exists and is not expired
   └─ No  → Call API to request/refresh Token → Save
   └─ Yes → Continue

3. Prompt user to continue target action

凭据存储(从配置文件读取 AK/SK)

AK/SK 与 Token 从同一配置文件读取。路径和格式遵循此技能中的脚本 scripts/chanjing_config.py。

  • 路径:~/.chanjing/credentials.json(目录可由 CHANJING_OPENAPI_CREDENTIALS_DIR 覆盖,并兼容 CHANJING_CONFIG_DIR)
  • 格式:
{
  "app_id": "Your Access Key",
  "secret_key": "Your Secret Key",
  "access_token": "Optional, auto-generated",
  "expire_in": 1721289220
}

expire_in 是 Unix 时间戳。Token 有效期约为 24 小时;请在过期前 5 分钟刷新。

缺少 AK/SK 时

本地缺少 app_id 或 secret_key 时:

  1. 打开登录页:运行 open_login_page.py 脚本,在默认浏览器中打开 Chanjing 登录页(https://www.chanjing.cc/openapi/login)。
  2. 用户获取密钥后,要求其运行本地设置命令:
    • 只显示命令;由用户在本地终端运行。
  3. 不要在聊天中索取密钥:
    • 绝不要要求用户在对话中粘贴 AK/SK。
    • 绝不要在聊天摘要中复述或存储 AK/SK。
  4. 设置完成后:
    • 请用户运行状态检查,然后继续执行目标操作。

设置 AK/SK 的命令(任选其一):

python scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>

手动打开登录页:python skills/chanjing-credentials-guard/scripts/open_login_page.py

用户想生成密钥时的引导

当用户明确想要生成 Chanjing 密钥、获取密钥或配置 AK/SK时,按以下流程操作:

步骤 1:检查是否已配置

检查本地是否已有 AK/SK(读取 ~/.chanjing/credentials.json,确认 app_id 和 secret_key 均非空;或运行 python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status)。

步骤 2:根据结果分支处理
  • 如果已配置:询问用户是否要覆盖本地配置。

    • 如果是,执行引导步骤。
    • 如果否,则停止。
  • 如果未配置:直接执行下面的“引导步骤”。

引导步骤(未配置或用户确认重新应用时)
  1. 运行 open_login_page.py,在默认浏览器中打开 Chanjing 登录页。
  2. 清楚说明页面流程:
    • 新用户会自动注册,当前页面将显示 App ID 和 Secret Key,并提供复制按钮。
    • 现有用户可能会被重定向到控制台;请告知他们打开左侧的 API 密钥 页面以查看或重置密钥。
  3. 请用户运行本地命令配置 AK/SK:
    python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
    
  4. 密钥处理规则:
    • 不要要求用户在聊天中粘贴 AK/SK。
    • 如果用户仍在聊天中分享了密钥,请提醒他们轮换密钥,并继续采用仅通过本地命令操作的流程。
  5. 设置完成后:
    • 运行状态检查: python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status
    • 然后继续执行目标 Chanjing 操作。

Token API(参见 chanjing-openapi.yaml)

POST https://open-api.chanjing.cc/open/v1/access_token
Content-Type: application/json

请求正文:

{
  "app_id": "{{app_id}}",
  "secret_key": "{{secret_key}}"
}

响应(成功时 code: 0):

{
  "code": 0,
  "msg": "success",
  "data": {
    "access_token": "xxx",
    "expire_in": 1721289220
  }
}
  • expire_in:Token 过期时间的 Unix 时间戳
  • 如果 code !== 0,则 AK/SK 无效或请求失败

验证逻辑

  1. AK/SK:从配置中读取(路径/格式见上文,依据 chanjing_config.py);确保 app_id 和 secret_key 不为空。
  2. Token:确保存在 access_token,且 expire_in > current_time + 300(提前 5 分钟刷新)。
  3. Token 刷新:调用上述 API,并将返回的 access_token 和 expire_in 写回文件。

快捷方式:运行 python skills/chanjing-credentials-guard/scripts/chanjing_get_token.py;成功时会打印 access_token,失败时会打印操作指引。

安全边界

  • 此技能仅提供本地凭据指引。
  • 无需安装钩子或提升/系统级权限。
  • 不应自动执行无关技能。
  • 不应接受通过聊天内容提供的 AK/SK。

Shell 配置

脚本说明
open_login_page.py打开 Chanjing 登录页面,并说明新用户/现有用户如何获取 AK/SK
chanjing_config.py设置或查看 AK/SK 和 Token 状态
chanjing_get_token.py将有效的 access_token 打印到 stdout(失败时提供操作指引)
# Open login page (also runs automatically when AK/SK is missing)
python skills/chanjing-credentials-guard/scripts/open_login_page.py

# Set AK/SK manually
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <app_id> --sk <secret_key>

# View status
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

与其他技能配合使用

  • 其他 Chanjing 技能可以使用相同的本地配置路径/格式,但应保留各自的运行时身份验证逻辑。
  • 用户明确请求凭据指引时,可将 Guard 用作可选的设置助手。

参考

  • reference.md:API 和存储格式详情
  • chanjing-openapi.yaml:/access_token、dto.OpenAccessTokenReq、dto.OpenAccessTokenResp

评论

支持 Markdown