OAuth
OpenClaw mendukung “autentikasi berlangganan” melalui OAuth untuk penyedia yang menawarkannya (terutama OpenAI Codex (ChatGPT OAuth)). Untuk langganan Anthropic, gunakan alur setup-token. Halaman ini menjelaskan:- bagaimana token exchange OAuth bekerja (PKCE)
- di mana token disimpan (dan mengapa)
- cara menangani banyak akun (profil + override per-sesi)
Token sink (mengapa ini ada)
Penyedia OAuth biasanya menerbitkan refresh token baru selama alur login/refresh. Beberapa penyedia (atau klien OAuth) dapat membatalkan refresh token lama ketika yang baru diterbitkan untuk pengguna/aplikasi yang sama. Masalah yang sering muncul:- Anda login melalui OpenClaw dan melalui Claude Code / Codex CLI → salah satunya secara acak menjadi “logged out” nanti
auth-profiles.json sebagai token sink:
- runtime membaca kredensial dari satu tempat
- kita dapat menyimpan beberapa profil dan merutekannya secara deterministik
Penyimpanan (di mana token berada)
Rahasia disimpan per-agen:- Profil Auth (OAuth + Kunci API):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Cache Runtime (dikelola otomatis; jangan diedit):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(diimpor keauth-profiles.jsonpada penggunaan pertama)
$OPENCLAW_STATE_DIR (override direktori state). Referensi lengkap: /id-ID/gateway/configuration
Setup-token Anthropic (autentikasi berlangganan)
Jalankanclaude setup-token di mesin mana pun, lalu tempelkan ke OpenClaw:
Pertukaran OAuth (bagaimana login bekerja)
Alur login interaktif OpenClaw diimplementasikan di@mariozechner/pi-ai dan dihubungkan ke wizard/perintah.
Setup-token Anthropic (Claude Pro/Max)
Bentuk alur:- jalankan
claude setup-token - tempelkan token ke OpenClaw
- simpan sebagai profil autentikasi token (tanpa refresh)
openclaw onboard → pilihan auth setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Bentuk alur (PKCE):- buat verifier/challenge PKCE +
stateacak - buka
https://auth.openai.com/oauth/authorize?... - coba tangkap callback di
http://127.0.0.1:1455/auth/callback - jika callback tidak dapat mengikat (atau Anda berada di remote/headless), tempelkan URL/kode redirect
- tukar di
https://auth.openai.com/oauth/token - ekstrak
accountIddari token akses dan simpan{ access, refresh, expires, accountId }
openclaw onboard → pilihan auth openai-codex.
Refresh + kedaluwarsa
Profil menyimpan stempel waktuexpires.
Saat runtime:
- jika
expiresada di masa depan → gunakan token akses yang tersimpan - jika kedaluwarsa → refresh (di bawah kunci file) dan timpa kredensial yang tersimpan
Banyak akun (profil) + perutean
Dua pola:1) Disukai: agen terpisah
Jika Anda ingin “pribadi” dan “kerja” tidak pernah berinteraksi, gunakan agen yang terisolasi (sesi terpisah + kredensial + workspace):2) Tingkat lanjut: banyak profil dalam satu agen
auth-profiles.json mendukung beberapa ID profil untuk penyedia yang sama.
Pilih profil mana yang digunakan:
- secara global melalui urutan konfigurasi (
auth.order) - per-sesi melalui
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(menampilkanauth[])
- /concepts/model-failover (aturan rotasi + cooldown)
- /tools/slash-commands (command surface)