OAuth¶
OpenClaw understøtter “abonnement auth” via OAuth for udbydere, der tilbyder det (især OpenAI Codex (ChatGPT OAuth)). For antropiske abonnementer skal du bruge setup-token flowet. Denne side forklarer:
- hvordan OAuth tokenudveksling fungerer (PKCE)
- hvor tokens lagres (og hvorfor)
- hvordan du håndterer flere konti (profiler + overrides pr. session)
OpenClaw understøtter også udbyder plugins, der sender deres egne OAuth eller API-key strømme. Kør dem via:
openclaw models auth login --provider <id>
Token-sinken (hvorfor den findes)¶
OAuth udbydere ofte mynte en ny opdateringstoken under login/refresh flows. Nogle udbydere (eller OAuth klienter) kan ugyldiggøre ældre opdaterings-tokens når en ny bliver udstedt for den samme bruger/app.
Praktisk symptom:
- du logger ind via OpenClaw og via Claude Code / Codex CLI → en af dem bliver tilfældigt “logget ud” senere
For at reducere dette behandler OpenClaw auth-profiles.json som en token-sink:
- runtime læser legitimationsoplysninger fra ét sted
- vi kan beholde flere profiler og route dem deterministisk
Lagring (hvor tokens ligger)¶
Hemmeligheder gemmes per-agent:
- Auth-profiler (OAuth + API-nøgler):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Runtime-cache (administreres automatisk; redigér ikke):
~/.openclaw/agents/<agentId>/agent/auth.json
Legacy import-only-fil (stadig understøttet, men ikke hovedlageret):
~/.openclaw/credentials/oauth.json(importeret tilauth-profiles.jsonved første brug)
Alle ovenstående også respektere $OPENCLAW_STATE_DIR (stat dir override). Fuld reference: /gateway/configuration
Anthropic opsætningstoken (abonnementsgodkendelse)¶
Kør claude setup-token på en vilkårlig maskine, og indsæt det derefter i OpenClaw:
openclaw models auth setup-token --provider anthropic
Hvis du genererede tokenet et andet sted, indsæt det manuelt:
openclaw models auth paste-token --provider anthropic
Verificér:
openclaw models status
OAuth-udveksling (sådan virker login)¶
OpenClaws interaktive login-flows er implementeret i @mariozechner/pi-ai og koblet til guider/kommandoer.
Anthropic (Claude Pro/Max) opsætningstoken¶
Flowets form:
- kør
claude setup-token - indsæt tokenet i OpenClaw
- gem som en token-auth-profil (ingen refresh)
Guide-stien er openclaw onboard → auth-valg setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)¶
Flowets form (PKCE):
- generér PKCE-verifier/challenge + tilfældig
state - åbn
https://auth.openai.com/oauth/authorize?... - forsøg at opfange callback på
http://127.0.0.1:1455/auth/callback - hvis callback ikke kan binde (eller du er remote/headless), indsæt redirect-URL/kode
- udveksl ved
https://auth.openai.com/oauth/token - udtræk
accountIdfra access-tokenet og gem{ access, refresh, expires, accountId }
Guide-stien er openclaw onboard → auth-valg openai-codex.
Refresh + udløb¶
Profiler gemmer et expires-tidsstempel.
Ved runtime:
- hvis
expireser i fremtiden → brug det gemte access-token - hvis udløbet → refresh (under en fillås) og overskriv de gemte legitimationsoplysninger
Refresh-flowet er automatisk; du behøver som regel ikke at håndtere tokens manuelt.
Flere konti (profiler) + routing¶
To mønstre:
1. Foretrukken: separate agenter¶
Hvis du vil have, at “personligt” og “arbejde” aldrig interagerer, så brug isolerede agenter (separate sessioner + legitimationsoplysninger + workspace):
openclaw agents add work
openclaw agents add personal
Konfigurér derefter auth pr. agent (guide) og route chats til den rigtige agent.
2. Avanceret: flere profiler i én agent¶
auth-profiles.json understøtter flere profil-id’er for den samme udbyder.
Vælg hvilken profil der bruges:
- globalt via konfigurationsrækkefølge (
auth.order) - pr. session via
/model ...@<profileId>
Eksempel (session-override):
/model Opus@anthropic:work
Sådan ser du, hvilke profil-id’er der findes:
openclaw channels list --json(viserauth[])
Relaterede docs:
- /concepts/model-failover (rotation + cooldown-regler)
- /tools/slash-commands (kommandoflade)