OAuth(OAuth 認證)
OpenClaw 針對提供此功能的供應商(特別是 OpenAI Codex (ChatGPT OAuth))支援透過 OAuth 進行「訂閱認證」。對於 Anthropic 訂閱,請使用 setup-token 流程。本頁面解釋:- OAuth 權杖交換 如何運作 (PKCE)
- 權杖儲存位置(以及原因)
- 如何處理多個帳戶(設定檔 + 每會話覆寫)
權杖接收器 (Token sink)(它存在的原因)
OAuth 供應商通常會在登入/重新整理流程中核發新的重新整理權杖 (refresh token)。有些供應商(或 OAuth 客戶端)會在為同一個使用者/應用程式核發新權杖時,讓舊的權杖失效。 實際症狀:- 您同時透過 OpenClaw 與 Claude Code / Codex CLI 登入 -> 其中一個稍後會隨機被「登出」。
auth-profiles.json 視為權杖接收器 (token sink):
- 執行環境從單一位置讀取憑證。
- 我們可以保留多個設定檔並進行確定性的路由。
儲存(權杖存放位置)
秘密(秘密資訊)是按代理儲存的:- 認證設定檔(OAuth + API 金鑰):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - 執行時快取(自動管理;請勿編輯):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(首次使用時會匯入到auth-profiles.json中)
$OPENCLAW_STATE_DIR(狀態目錄覆寫)。完整參考:/gateway/configuration
Anthropic setup-token(訂閱認證)
在任何機器上運行claude setup-token,然後將其貼入 OpenClaw:
OAuth 交換(登入如何運作)
OpenClaw 的互動式登入流程實作於@mariozechner/pi-ai 中,並與引導精靈/命令相連接。
Anthropic (Claude Pro/Max) setup-token
流程形狀:- 執行
claude setup-token - 將權杖貼入 OpenClaw
- 儲存為權杖認證設定檔(無重新整理機制)
openclaw onboard → 認證選擇 setup-token (Anthropic)。
OpenAI Codex (ChatGPT OAuth)
流程形狀 (PKCE):- 生成 PKCE 驗證器 (verifier)/挑戰碼 (challenge) + 隨機
state - 開啟
https://auth.openai.com/oauth/authorize?... - 嘗試在
http://127.0.0.1:1455/auth/callback捕捉回呼 (callback) - 如果回呼無法繫結(或者您是在遠端/無頭模式下),請貼上重新導向 URL/代碼
- 在
https://auth.openai.com/oauth/token進行交換 - 從存取權杖中提取
accountId並儲存{ access, refresh, expires, accountId }
openclaw onboard → 認證選擇 openai-codex。
重新整理與過期
設定檔儲存了一個expires 時間戳記。
在執行時:
- 如果
expires在未來 -> 使用儲存的存取權杖。 - 如果已過期 -> 執行重新整理(在檔案鎖定下)並覆寫儲存的憑證。
多個帳戶(設定檔)與路由
兩種模式:1) 推薦方式:獨立的代理 (Agents)
如果您希望「個人」和「工作」帳戶永不交叉,請使用隔離的代理(獨立的會話 + 憑證 + 工作區):2) 進階方式:單個代理中的多個設定檔
auth-profiles.json 支援同一個供應商的多個設定檔 ID。
挑選使用的設定檔:
- 透過組態順序 (
auth.order) 進行全域設定 - 透過
/model ...@<profileId>進行每會話覆寫
/model Opus@anthropic:work
openclaw channels list --json(查看auth[]欄位)
- /concepts/model-failover(輪換與冷卻規則)
- /tools/slash-commands(命令介面)