Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

OAuth

OpenClaw obsługuje „subscription auth” przez OAuth dla dostawców, którzy je oferują (w szczególności OpenAI Codex (ChatGPT OAuth)). W przypadku subskrypcji Anthropic użyj przepływu setup-token. Ta strona wyjaśnia:

  • jak działa wymiana tokenów OAuth (PKCE)
  • gdzie tokeny są przechowywane (i dlaczego)
  • jak obsługiwać wiele kont (profile + nadpisania per sesja)

OpenClaw obsługuje także wtyczki dostawców, które dostarczają własne przepływy OAuth lub kluczy API. Uruchamiaj je przez:

openclaw models auth login --provider <id>

Token sink (dlaczego istnieje)

Dostawcy OAuth często wystawiają nowy token odświeżania podczas przepływów logowania/odświeżania. Niektórzy dostawcy (lub klienci OAuth) mogą unieważniać starsze tokeny odświeżania, gdy dla tego samego użytkownika/aplikacji zostanie wydany nowy.

Praktyczny objaw:

  • logujesz się przez OpenClaw oraz przez Claude Code / Codex CLI → jeden z nich losowo zostaje później „wylogowany”

Aby to ograniczyć, OpenClaw traktuje auth-profiles.json jako token sink:

  • środowisko wykonawcze odczytuje poświadczenia z jednego miejsca
  • możemy utrzymywać wiele profili i deterministycznie je routować

Przechowywanie (gdzie są tokeny)

Sekrety są przechowywane per agent:

  • Profile uwierzytelniania (OAuth + klucze API): ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • Pamięć podręczna środowiska wykonawczego (zarządzana automatycznie; nie edytuj): ~/.openclaw/agents/<agentId>/agent/auth.json

Plik dziedziczony tylko do importu (nadal obsługiwany, ale nie jest głównym magazynem):

  • ~/.openclaw/credentials/oauth.json (importowany do auth-profiles.json przy pierwszym użyciu)

Wszystkie powyższe respektują także $OPENCLAW_STATE_DIR (nadpisanie katalogu stanu). Pełne odniesienie: /gateway/configuration

Anthropic setup-token (uwierzytelnianie subskrypcyjne)

Uruchom claude setup-token na dowolnej maszynie, a następnie wklej go do OpenClaw:

openclaw models auth setup-token --provider anthropic

Jeśli wygenerowałeś token gdzie indziej, wklej go ręcznie:

openclaw models auth paste-token --provider anthropic

Weryfikacja:

openclaw models status

Wymiana OAuth (jak działa logowanie)

Interaktywne przepływy logowania OpenClaw są zaimplementowane w @mariozechner/pi-ai i podłączone do kreatorów/poleceń.

Anthropic (Claude Pro/Max) setup-token

Kształt przepływu:

  1. uruchom claude setup-token
  2. wklej token do OpenClaw
  3. zapisz jako profil uwierzytelniania tokenem (bez odświeżania)

Ścieżka kreatora to openclaw onboard → wybór uwierzytelniania setup-token (Anthropic).

OpenAI Codex (ChatGPT OAuth)

Kształt przepływu (PKCE):

  1. wygeneruj weryfikator/wyzwanie PKCE + losowy state
  2. otwórz https://auth.openai.com/oauth/authorize?...
  3. spróbuj przechwycić callback na http://127.0.0.1:1455/auth/callback
  4. jeśli callback nie może się zbindować (lub jesteś zdalnie/headless), wklej URL przekierowania/kod
  5. wymień w https://auth.openai.com/oauth/token
  6. wyodrębnij accountId z tokenu dostępu i zapisz { access, refresh, expires, accountId }

Ścieżka kreatora to openclaw onboard → wybór uwierzytelniania openai-codex.

Odświeżanie + wygaśnięcie

Profile przechowują znacznik czasu expires.

W czasie działania:

  • jeśli expires jest w przyszłości → użyj zapisanego tokenu dostępu
  • jeśli wygasł → odśwież (pod blokadą pliku) i nadpisz zapisane poświadczenia

Przepływ odświeżania jest automatyczny; zazwyczaj nie trzeba zarządzać tokenami ręcznie.

Wiele kont (profile) + routing

Dwa wzorce:

1. Zalecane: oddzielni agenci

Jeśli chcesz, aby „prywatne” i „służbowe” nigdy się nie stykały, użyj izolowanych agentów (oddzielne sesje + poświadczenia + obszar roboczy):

openclaw agents add work
openclaw agents add personal

Następnie skonfiguruj uwierzytelnianie per agent (kreator) i routuj czaty do właściwego agenta.

2. Zaawansowane: wiele profili w jednym agencie

auth-profiles.json obsługuje wiele identyfikatorów profili dla tego samego dostawcy.

Wybór używanego profilu:

  • globalnie przez kolejność konfiguracji (auth.order)
  • per sesja przez /model ...@<profileId>

Przykład (nadpisanie sesji):

  • /model Opus@anthropic:work

Jak sprawdzić, jakie identyfikatory profili istnieją:

  • openclaw channels list --json (pokazuje auth[])

Powiązana dokumentacja: