Zum Hauptinhalt springen

OAuth

OpenClaw unterstützt „Subscription-Auth“ via OAuth für Anbieter, die dies anbieten (insbesondere OpenAI Codex (ChatGPT OAuth)). Für Anthropic-Abonnements verwenden Sie den setup-token-Flow. Diese Seite erklärt:
  • wie der OAuth-Token-Austausch funktioniert (PKCE)
  • wo Tokens gespeichert werden (und warum)
  • wie mehrere Konten gehandhabt werden (Profile + sitzungsbezogene Overrides)
OpenClaw unterstützt außerdem Anbieter-Plugins, die ihre eigenen OAuth- oder API‑Schlüssel- Flows mitbringen. Führen Sie diese aus über:
openclaw models auth login --provider <id>

Die Token-Senke (warum sie existiert)

OAuth-Anbieter stellen während Login-/Refresh-Flows häufig ein neues Refresh-Token aus. Einige Anbieter (oder OAuth-Clients) können ältere Refresh-Tokens ungültig machen, wenn für denselben Benutzer/dieselbe App ein neues ausgegeben wird. Praktisches Symptom:
  • Sie melden sich über OpenClaw und über Claude Code / Codex CLI an → eines davon wird später zufällig „abgemeldet“
Um dies zu reduzieren, behandelt OpenClaw auth-profiles.json als Token-Senke:
  • die Runtime liest Anmeldedaten aus einer einzigen Quelle
  • wir können mehrere Profile vorhalten und deterministisch routen

Speicher (wo Tokens gespeichert werden)

Secrets werden pro Agent gespeichert:
  • Auth-Profile (OAuth + API-Schlüssel): ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • Runtime-Cache (automatisch verwaltet; nicht bearbeiten): ~/.openclaw/agents/<agentId>/agent/auth.json
Legacy-Datei nur zum Import (weiterhin unterstützt, aber nicht der Hauptspeicher):
  • ~/.openclaw/credentials/oauth.json (bei der ersten Verwendung in auth-profiles.json importiert)
All dies berücksichtigt außerdem $OPENCLAW_STATE_DIR (Override des State-Verzeichnisses). Vollständige Referenz: /gateway/configuration

Anthropic Setup-Token (Abonnement-Authentifizierung)

Führen Sie claude setup-token auf einem beliebigen Rechner aus und fügen Sie es anschließend in OpenClaw ein:
openclaw models auth setup-token --provider anthropic
Wenn Sie das Token anderswo generiert haben, fügen Sie es manuell ein:
openclaw models auth paste-token --provider anthropic
Verifizieren:
openclaw models status

OAuth-Austausch (wie die Anmeldung funktioniert)

Die interaktiven Login-Flows von OpenClaw sind in @mariozechner/pi-ai implementiert und in die Assistenten/Befehle eingebunden.

Anthropic (Claude Pro/Max) Setup-Token

Flussform:
  1. führen Sie claude setup-token aus
  2. fügen Sie das Token in OpenClaw ein
  3. als Token-Auth-Profil speichern (kein Refresh)
Der Assistentenpfad ist openclaw onboard → Auth-Auswahl setup-token (Anthropic).

OpenAI Codex (ChatGPT OAuth)

Ablauf (PKCE):
  1. PKCE-Verifier/Challenge + zufälligen state erzeugen
  2. https://auth.openai.com/oauth/authorize?... öffnen
  3. versuchen, den Callback auf http://127.0.0.1:1455/auth/callback abzufangen
  4. falls der Callback nicht binden kann (oder Sie remote/headless sind), fügen Sie die Redirect-URL/den Code ein
  5. Austausch bei https://auth.openai.com/oauth/token
  6. accountId aus dem Access-Token extrahieren und { access, refresh, expires, accountId } speichern
Der Assistentenpfad ist openclaw onboard → Auth-Auswahl openai-codex.

Aktualisierung + Ablauf

Profile speichern einen expires-Zeitstempel. Zur Laufzeit:
  • wenn expires in der Zukunft liegt → gespeichertes Access-Token verwenden
  • wenn abgelaufen → Refresh (unter Dateisperre) und Überschreiben der gespeicherten Anmeldedaten
Der Refresh-Flow ist automatisch; in der Regel müssen Sie Tokens nicht manuell verwalten.

Mehrere Konten (Profile) + Routing

Zwei Muster:

1. Bevorzugt: getrennte Agenten

Wenn „privat“ und „geschäftlich“ niemals interagieren sollen, verwenden Sie isolierte Agenten (separate Sitzungen + Anmeldedaten + Workspace):
openclaw agents add work
openclaw agents add personal
Konfigurieren Sie dann die Authentifizierung pro Agent (Assistent) und routen Sie Chats an den richtigen Agenten.

2. Erweitert: mehrere Profile in einem Agenten

auth-profiles.json unterstützt mehrere Profil-IDs für denselben Anbieter. Wählen Sie, welches Profil verwendet wird:
  • global über die Konfigurationsreihenfolge (auth.order)
  • pro Sitzung über /model ...@<profileId>
Beispiel (Sitzungs-Override):
  • /model Opus@anthropic:work
So sehen Sie, welche Profil-IDs existieren:
  • openclaw channels list --json (zeigt auth[])
Verwandte Dokumente: