OAuth
OpenClaw prend en charge l’« authentification par abonnement » via OAuth pour les fournisseurs qui la proposent (notamment OpenAI Codex (ChatGPT OAuth)). Pour les abonnements Anthropic, utilisez le flux setup-token. Cette page explique :- comment fonctionne l’échange de jetons OAuth (PKCE)
- où les jetons sont stockés (et pourquoi)
- comment gérer plusieurs comptes (profils + remplacements par session)
Le puits à jetons (pourquoi il existe)
Les fournisseurs OAuth émettent couramment un nouveau jeton d’actualisation lors des flux de connexion/actualisation. Certains fournisseurs (ou clients OAuth) peuvent invalider les anciens jetons d’actualisation lorsqu’un nouveau est émis pour le même utilisateur/la même application. Symptôme pratique :- vous vous connectez via OpenClaw et via Claude Code / Codex CLI → l’un des deux se retrouve « déconnecté » aléatoirement plus tard
auth-profiles.json comme un puits à jetons :
- l’exécution lit les identifiants depuis un seul endroit
- nous pouvons conserver plusieurs profils et les router de manière déterministe
Stockage (où vivent les jetons)
Les secrets sont stockés par agent :- Profils d’authentification (OAuth + clés API) :
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Cache d’exécution (géré automatiquement ; ne pas modifier) :
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(importé dansauth-profiles.jsonlors de la première utilisation)
$OPENCLAW_STATE_DIR (remplacement du répertoire d’état). Référence complète : /gateway/configuration
Setup-token Anthropic (authentification par abonnement)
Exécutezclaude setup-token sur n’importe quelle machine, puis collez-le dans OpenClaw :
Échange OAuth (comment fonctionne la connexion)
Les flux de connexion interactifs d’OpenClaw sont implémentés dans@mariozechner/pi-ai et reliés aux assistants/commandes.
Setup-token Anthropic (Claude Pro/Max)
Forme du flux :- exécuter
claude setup-token - coller le jeton dans OpenClaw
- stocker comme profil d’authentification par jeton (sans actualisation)
openclaw onboard → choix d’authentification setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Forme du flux (PKCE) :- générer le vérificateur/défi PKCE + un
statealéatoire - ouvrir
https://auth.openai.com/oauth/authorize?... - tenter de capturer le rappel sur
http://127.0.0.1:1455/auth/callback - si le rappel ne peut pas s’attacher (ou si vous êtes distant/sans interface), collez l’URL de redirection/le code
- échanger à
https://auth.openai.com/oauth/token - extraire
accountIddepuis le jeton d’accès et stocker{ access, refresh, expires, accountId }
openclaw onboard → choix d’authentification openai-codex.
Actualisation + expiration
Les profils stockent un horodatageexpires.
À l’exécution :
- si
expiresest dans le futur → utiliser le jeton d’accès stocké - s’il est expiré → actualiser (sous verrou de fichier) et écraser les identifiants stockés
Comptes multiples (profils) + routage
Deux modèles :1. Préféré : agents séparés
Si vous voulez que « personnel » et « travail » n’interagissent jamais, utilisez des agents isolés (sessions + identifiants + espace de travail séparés) :2. Avancé : plusieurs profils dans un seul agent
auth-profiles.json prend en charge plusieurs identifiants de profil pour un même fournisseur.
Choisissez quel profil est utilisé :
- globalement via l’ordre de configuration (
auth.order) - par session via
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(afficheauth[])
- /concepts/model-failover (règles de rotation + temporisation)
- /tools/slash-commands (surface des commandes)