Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

OAuth

Sinusuportahan ng OpenClaw ang “subscription auth” sa pamamagitan ng OAuth para sa mga provider na nag-aalok nito (lalo na ang OpenAI Codex (ChatGPT OAuth)). Para sa mga subscription ng Anthropic, gamitin ang setup-token na daloy. Ipinapaliwanag ng pahinang ito ang:

  • kung paano gumagana ang OAuth token exchange (PKCE)
  • kung saan iniimbak ang mga token (at kung bakit)
  • kung paano pangasiwaan ang maraming account (mga profile + per-session na override)

Sinusuportahan din ng OpenClaw ang provider plugins na may sariling OAuth o API‑key flows. Run them via:

openclaw models auth login --provider <id>

Ang token sink (bakit ito umiiral)

Karaniwang nag-iisyu ang mga OAuth provider ng bagong refresh token sa panahon ng mga daloy ng login/refresh. Ang ilang provider (o OAuth clients) ay maaaring magpawalang-bisa ng mga mas lumang refresh token kapag may bagong inilabas para sa parehong user/app.

Praktikal na sintomas:

  • nag-login ka sa OpenClaw at sa Claude Code / Codex CLI → isa sa mga ito ay biglang “nalo-log out” kalaunan

Upang mabawasan ito, tinatrato ng OpenClaw ang auth-profiles.json bilang token sink:

  • binabasa ng runtime ang mga kredensyal mula sa iisang lugar
  • maaari naming panatilihin ang maraming profile at iruta ang mga ito nang deterministiko

Storage (kung saan nakatira ang mga token)

Ang mga sikreto ay iniimbak per-agent:

  • Mga auth profile (OAuth + API keys): ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • Runtime cache (awtomatikong pinamamahalaan; huwag i-edit): ~/.openclaw/agents/<agentId>/agent/auth.json

Legacy na import-only file (suportado pa rin, ngunit hindi ang pangunahing store):

  • ~/.openclaw/credentials/oauth.json (ini-import sa auth-profiles.json sa unang gamit)

Ang lahat ng nasa itaas ay sumusunod din sa $OPENCLAW_STATE_DIR (override ng state dir). Buong sanggunian: /gateway/configuration

Anthropic setup-token (subscription auth)

Patakbuhin ang claude setup-token sa anumang makina, pagkatapos ay i-paste ito sa OpenClaw:

openclaw models auth setup-token --provider anthropic

Kung nabuo mo ang token sa ibang lugar, i-paste ito nang manu-mano:

openclaw models auth paste-token --provider anthropic

I-verify:

openclaw models status

OAuth exchange (kung paano gumagana ang login)

Ang mga interactive login flow ng OpenClaw ay ipinatutupad sa @mariozechner/pi-ai at ikinokonekta sa mga wizard/command.

Anthropic (Claude Pro/Max) setup-token

Hugis ng flow:

  1. patakbuhin ang claude setup-token
  2. i-paste ang token sa OpenClaw
  3. i-store bilang token auth profile (walang refresh)

Ang wizard path ay openclaw onboard → auth choice setup-token (Anthropic).

OpenAI Codex (ChatGPT OAuth)

Hugis ng flow (PKCE):

  1. bumuo ng PKCE verifier/challenge + random state
  2. buksan ang https://auth.openai.com/oauth/authorize?...
  3. subukang kunin ang callback sa http://127.0.0.1:1455/auth/callback
  4. kung hindi makapag-bind ang callback (o remote/headless ka), i-paste ang redirect URL/code
  5. mag-exchange sa https://auth.openai.com/oauth/token
  6. kunin ang accountId mula sa access token at i-store ang { access, refresh, expires, accountId }

Ang wizard path ay openclaw onboard → auth choice openai-codex.

Pag-refresh + pag-expire

Ang mga profile ay nag-iimbak ng expires timestamp.

Sa runtime:

  • kung ang expires ay nasa hinaharap → gamitin ang nakaimbak na access token
  • kung expired → mag-refresh (sa ilalim ng file lock) at i-overwrite ang nakaimbak na mga kredensyal

Awtomatiko ang refresh flow; karaniwan ay hindi mo kailangang pamahalaan ang mga token nang manu-mano.

Maraming account (mga profile) + routing

Dalawang pattern:

1. Inirerekomenda: hiwalay na mga agent

Kung gusto mong hindi kailanman magkahalo ang “personal” at “work,” gumamit ng mga isolated agent (hiwalay na mga session + kredensyal + workspace):

openclaw agents add work
openclaw agents add personal

Pagkatapos ay i-configure ang auth per-agent (wizard) at iruta ang mga chat sa tamang agent.

2. Advanced: maraming profile sa iisang agent

Sinusuportahan ng auth-profiles.json ang maraming profile ID para sa parehong provider.

Piliin kung aling profile ang gagamitin:

  • global sa pamamagitan ng pag-aayos ng config (auth.order)
  • per-session sa pamamagitan ng /model ...@<profileId>

Halimbawa (session override):

  • /model Opus@anthropic:work

Paano makita kung anong mga profile ID ang umiiral:

  • openclaw channels list --json (ipinapakita ang auth[])

Kaugnay na docs: