chanjing-credentials-guard について
Chanjing Credentials Guard は、Chanjing サービス利用者向けのローカル認証情報設定・検証スキルです。AK/SK の設定を案内し、ログインページを開いてトークンの有効性を管理します。チャットで秘密情報を求めません。
主な機能
- 01ローカル AK/SK 設定の確認
- 02認証情報のローカル設定案内
- 03Chanjing ログインページの表示
- 04アクセストークンの確認と更新
- 05チャットでの秘密情報の取り扱い回避
活用シーン
- 01Chanjing 認証情報のローカル設定
- 02認証情報の不足や無効時の復旧
- 03トークン更新の要否確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ chanjing-ai/ chan-skills --skill chanjing-credentials-guardインストール後、Claude Code で/chanjing-credentials-guardを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.yamlreference.mdscripts/chanjing_config.pychanjing_get_token.pyopen_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
実行するタイミング
- ユーザーが Chanjing のキー(AK/SK)の設定や取得を求めた場合:ローカルでのセットアップを案内するため、このスキルを使用します。
- 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 が不足している場合:
- ログインページを開く:
open_login_page.pyスクリプトを実行し、デフォルトのブラウザーで Chanjing のサインインページ(https://www.chanjing.cc/openapi/login)を開きます。 - ユーザーがキーを取得した後、ローカル設定コマンドの実行を必須とします:
- コマンドのみを表示し、ユーザー自身がローカルのターミナルで実行します。
- 会話中にシークレットを求めないでください:
- ユーザーに会話中で AK/SK を貼り付けるよう求めてはいけません。
- 会話の要約で AK/SK を繰り返したり、保存したりしてはいけません。
- 設定後:
- ユーザーにステータス確認を実行するよう依頼してから、目的の操作に進みます。
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:結果に応じて分岐
-
すでに設定済みの場合:ローカル設定を上書きするかユーザーに確認します。
- 上書きする場合は、案内の手順に進みます。
- 上書きしない場合は、終了します。
-
未設定の場合:「案内の手順」に直接進みます。
案内の手順(未設定、またはユーザーが再設定を確認した場合)
open_login_page.pyを実行し、デフォルトのブラウザーで Chanjing のログインページを開きます。- ページの流れを明確に説明します:
- 新規ユーザーは自動的に登録され、現在のページにコピー用ボタン付きで
App IDとSecret Keyが表示されます。 - 既存ユーザーはコンソールにリダイレクトされる場合があります。その場合は、左側の API 密钥 ページを開いてキーを確認またはリセットするよう伝えます。
- 新規ユーザーは自動的に登録され、現在のページにコピー用ボタン付きで
- AK/SK を設定するローカルコマンドの実行をユーザーに依頼します:
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key> - シークレットの取り扱いルール:
- ユーザーに会話中で AK/SK を貼り付けるよう求めてはいけません。
- ユーザーが会話中にシークレットを共有してしまった場合は、キーのローテーションを勧め、ローカルコマンドのみを使用するフローを続けます。
- 設定後:
- ステータス確認を実行します:
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 が無効か、リクエストが失敗しています
検証ロジック
- AK/SK:設定から読み込みます(上記のパス/形式、
chanjing_config.pyに準拠)。app_idとsecret_keyが空でないことを確認します。 - トークン:
access_tokenが存在し、expire_in > current_time + 300(5 分前に更新)であることを確認します。 - トークンの更新:上記の API を呼び出し、返された
access_tokenとexpire_inをファイルに書き戻します。
ショートカット:python skills/chanjing-credentials-guard/scripts/chanjing_get_token.py を実行します。成功すると access_token を出力し、失敗するとガイダンスを出力します。
セキュリティ境界
- このスキルはローカルの認証情報に関するガイダンスのみを扱います。
- インストールフックや昇格された/システム全体の権限は必要ありません。
- 無関係なスキルを自動的に実行しません。
- チャットの内容を通じて AK/SK を受け付けません。
シェル設定
| スクリプト | 説明 |
|---|---|
open_login_page.py | Chanjing のログインページを開き、新規ユーザー/既存ユーザーが AK/SK を取得する方法を説明します |
chanjing_config.py | AK/SK とトークンの状態を設定または表示します |
chanjing_get_token.py | 有効な access_token を標準出力に出力します(失敗時はガイダンスを出力します) |
# 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