OAuth
- OpenClaw hỗ trợ “xác thực thuê bao” thông qua OAuth cho các nhà cung cấp có hỗ trợ (đáng chú ý là OpenAI Codex (ChatGPT OAuth)). Đối với các gói đăng ký Anthropic, hãy dùng luồng setup-token. Trang này giải thích:
- cách hoạt động của trao đổi token OAuth (PKCE)
- token được lưu ở đâu (và vì sao)
- cách xử lý nhiều tài khoản (hồ sơ + ghi đè theo phiên)
- OpenClaw cũng hỗ trợ plugin nhà cung cấp đi kèm OAuth hoặc luồng khóa API riêng flows. 11. Chạy chúng bằng:
Token sink (vì sao nó tồn tại)
- Các nhà cung cấp OAuth thường phát hành refresh token mới trong các luồng đăng nhập/làm mới. 13. Một số nhà cung cấp (hoặc client OAuth) có thể vô hiệu hóa các refresh token cũ khi một token mới được phát hành cho cùng người dùng/ứng dụng.
- bạn đăng nhập qua OpenClaw và qua Claude Code / Codex CLI → một trong hai sẽ ngẫu nhiên bị “đăng xuất” sau đó
auth-profiles.json như một token sink:
- runtime đọc thông tin xác thực từ một nơi duy nhất
- có thể giữ nhiều hồ sơ và định tuyến chúng một cách xác định
Lưu trữ (token nằm ở đâu)
Bí mật được lưu theo từng tác tử:- Hồ sơ xác thực (OAuth + khóa API):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Cache runtime (được quản lý tự động; đừng chỉnh sửa):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(được import vàoauth-profiles.jsonkhi dùng lần đầu)
- Tất cả những điều trên cũng tuân theo
$OPENCLAW_STATE_DIR(ghi đè thư mục trạng thái). 15. Tham chiếu đầy đủ: /gateway/configuration
Anthropic setup-token (subscription auth)
Chạyclaude setup-token trên bất kỳ máy nào, sau đó dán vào OpenClaw:
Trao đổi OAuth (cách đăng nhập hoạt động)
Các luồng đăng nhập tương tác của OpenClaw được triển khai trong@mariozechner/pi-ai và được kết nối vào các wizard/lệnh.
Anthropic (Claude Pro/Max) setup-token
Hình dạng luồng:- chạy
claude setup-token - dán token vào OpenClaw
- lưu thành hồ sơ xác thực bằng token (không làm mới)
openclaw onboard → lựa chọn xác thực setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Hình dạng luồng (PKCE):- tạo PKCE verifier/challenge +
statengẫu nhiên - mở
https://auth.openai.com/oauth/authorize?... - cố gắng bắt callback tại
http://127.0.0.1:1455/auth/callback - nếu callback không thể bind (hoặc bạn ở môi trường remote/headless), hãy dán URL/code chuyển hướng
- trao đổi tại
https://auth.openai.com/oauth/token - trích xuất
accountIdtừ access token và lưu{ access, refresh, expires, accountId }
openclaw onboard → lựa chọn xác thực openai-codex.
Làm mới + hết hạn
Các hồ sơ lưu một mốc thời gianexpires.
Khi chạy:
- nếu
expiresở tương lai → dùng access token đã lưu - nếu đã hết hạn → làm mới (dưới khóa tệp) và ghi đè thông tin xác thực đã lưu
Nhiều tài khoản (hồ sơ) + định tuyến
Hai mô hình:1. Ưu tiên: tác tử tách biệt
Nếu bạn muốn “cá nhân” và “công việc” không bao giờ tương tác, hãy dùng các tác tử cô lập (phiên + thông tin xác thực + workspace riêng):2. Nâng cao: nhiều hồ sơ trong một tác tử
auth-profiles.json hỗ trợ nhiều ID hồ sơ cho cùng một nhà cung cấp.
Chọn hồ sơ được dùng:
- toàn cục qua thứ tự cấu hình (
auth.order) - theo phiên qua
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(hiển thịauth[])
- /concepts/model-failover (quy tắc luân phiên + cooldown)
- /tools/slash-commands (bề mặt lệnh)