跳转至

快速开始

这个流程只使用本地文件,不需要 CRS、Redis、Nginx 或真实 OpenAI/Codex token。它验证 ChatAuth 的最小闭环:issuer state → client → subject → refresh grant → runtime token-store → access token → JWKS 验证。

安装与版本回读

python -m pip install ChatAuth
chatauth --version
chatauth --tree
chatauth --tree-brief

本地 smoke flow

STATE=./.chatauth-state
STORE=./.runtime-token.json
HANDOFF=./.refresh-token.txt
JWKS=./.jwks.json

chatauth service init --state-dir "$STATE" --issuer https://auth.example.test --execute
chatauth service doctor --state-dir "$STATE"

chatauth admin clients create demo \
  --state-dir "$STATE" \
  --audience chatarch.internal \
  --scope agent:run \
  --execute

chatauth admin subjects create machine:demo --state-dir "$STATE" --execute

CLIENT_ID=$(chatauth admin clients list --state-dir "$STATE" \
  | python -c 'import json,sys; print(json.load(sys.stdin)["clients"][0]["client_id"])')

chatauth admin grants issue "$CLIENT_ID" machine:demo \
  --state-dir "$STATE" \
  --audience chatarch.internal \
  --scope agent:run \
  --handoff-file "$HANDOFF" \
  --execute

chatauth token import-refresh \
  --state-dir "$STATE" \
  --token-store "$STORE" \
  --from-file "$HANDOFF" \
  --execute

chatauth token refresh --state-dir "$STATE" --token-store "$STORE" --execute
chatauth admin keys jwks --state-dir "$STATE" > "$JWKS"

chatauth verify access-token \
  --token-store "$STORE" \
  --jwks-file "$JWKS" \
  --issuer https://auth.example.test \
  --audience chatarch.internal \
  --scope agent:run

最后一步应输出:

valid

dry-run 与写入边界

写操作默认 dry-run。需要真实写入时显式加 --execute

命令 --execute --execute
service init 返回计划,不创建 state 创建 state DB 和 signing key
admin clients create 返回计划,不写 client 写入 client metadata
admin subjects create 返回计划,不写 subject 写入 subject metadata
admin grants issue 返回计划,不写 handoff 生成 refresh grant,并把 refresh token 写入 0600 handoff 文件
token import-refresh 返回计划,不写 token-store 从 handoff 导入 refresh token
token refresh 返回计划,不旋转 token 旋转 refresh token 并写入短期 access token
token clear 返回计划,不删除 token-store 删除显式 token-store 文件

清理示例文件

rm -rf ./.chatauth-state ./.runtime-token.json ./.refresh-token.txt ./.jwks.json

注意:正式 workspace 里需要删除或改动项目文件时,按 workspace 规范优先移动到就近 .trash/;上面的 rm -rf 只适用于 quickstart 里用户自己创建的示例临时文件。