> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth

# OAuth

OpenClaw поддерживает «subscription auth» через OAuth для провайдеров, которые его предлагают (в частности, **OpenAI Codex (ChatGPT OAuth)**). Для подписок Anthropic используйте поток **setup-token**. На этой странице объясняется:

* как работает **обмен токенов** OAuth (PKCE)
* где **хранятся** токены (и почему)
* как обрабатывать **несколько аккаунтов** (профили + переопределения на сеанс)

OpenClaw также поддерживает **плагины провайдеров**, которые поставляются с собственными потоками OAuth или API‑ключей. Запускайте их через:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models auth login --provider <id>
```

## Снимок токена (зачем он существует)

OAuth‑провайдеры обычно выпускают **новый refresh‑токен** во время входа или обновления. Некоторые провайдеры (или OAuth‑клиенты) могут инвалидировать более старые refresh‑токены, когда для того же пользователя/приложения выпускается новый.

Практический симптом:

* вы входите через OpenClaw *и* через Claude Code / Codex CLI → один из них позже «случайно» оказывается разлогинен

Чтобы уменьшить это, OpenClaw рассматривает `auth-profiles.json` как **приёмник токенов**:

* среда выполнения читает учётные данные **из одного места**
* можно хранить несколько профилей и маршрутизировать их детерминированно

## Хранение (где живут токены)

Секреты хранятся **для каждого агента**:

* Профили аутентификации (OAuth + API‑ключи): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
* Кэш среды выполнения (управляется автоматически; не редактируйте): `~/.openclaw/agents/<agentId>/agent/auth.json`

Устаревший файл только для импорта (по‑прежнему поддерживается, но не является основным хранилищем):

* `~/.openclaw/credentials/oauth.json` (импортируется в `auth-profiles.json` при первом использовании)

Всё вышеперечисленное также учитывает `$OPENCLAW_STATE_DIR` (переопределение каталога состояния). Полная справка: [/gateway/configuration](/gateway/configuration#auth-storage-oauth--api-keys)

## Anthropic — токен настройки (аутентификация по подписке)

Запустите `claude setup-token` на любой машине, затем вставьте его в OpenClaw:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models auth setup-token --provider anthropic
```

Если вы сгенерировали токен в другом месте, вставьте его вручную:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models auth paste-token --provider anthropic
```

Проверка:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models status
```

## Обмен OAuth (как работает вход)

Интерактивные потоки входа OpenClaw реализованы в `@mariozechner/pi-ai` и подключены к мастерам/командам.

### Anthropic (Claude Pro/Max) — токен настройки

Форма потока:

1. запустите `claude setup-token`
2. вставьте токен в OpenClaw
3. сохраните как профиль аутентификации по токену (без обновления)

Путь в мастере: `openclaw onboard` → выбор аутентификации `setup-token` (Anthropic).

### OpenAI Codex (ChatGPT OAuth)

Форма потока (PKCE):

1. сгенерировать PKCE verifier/challenge + случайный `state`
2. открыть `https://auth.openai.com/oauth/authorize?...`
3. попытаться перехватить callback на `http://127.0.0.1:1455/auth/callback`
4. если callback не может быть привязан (или вы работаете удалённо/без интерфейса), вставить URL перенаправления/код
5. выполнить обмен на `https://auth.openai.com/oauth/token`
6. извлечь `accountId` из access‑токена и сохранить `{ access, refresh, expires, accountId }`

Путь в мастере: `openclaw onboard` → выбор аутентификации `openai-codex`.

## Обновление + истечение срока действия

Профили хранят временную метку `expires`.

Во время выполнения:

* если `expires` находится в будущем → используется сохранённый access‑токен
* если срок истёк → выполняется обновление (под файловой блокировкой) и сохранённые учётные данные перезаписываются

Поток обновления автоматический; обычно вам не нужно управлять токенами вручную.

## Несколько аккаунтов (профили) + маршрутизация

Два шаблона:

### 1. Предпочтительно: отдельные агенты

Если вы хотите, чтобы «личное» и «рабочее» никогда не пересекались, используйте изолированные агенты (отдельные сеансы + учётные данные + рабочее пространство):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw agents add work
openclaw agents add personal
```

Затем настройте аутентификацию для каждого агента (через мастер) и направляйте чаты к нужному агенту.

### 2. Продвинуто: несколько профилей в одном агенте

`auth-profiles.json` поддерживает несколько идентификаторов профилей для одного и того же провайдера.

Выбор используемого профиля:

* глобально через порядок в конфиге (`auth.order`)
* для конкретного сеанса через `/model ...@<profileId>`

Пример (переопределение на сеанс):

* `/model Opus@anthropic:work`

Как посмотреть, какие идентификаторы профилей существуют:

* `openclaw channels list --json` (показывает `auth[]`)

Связанная документация:

* [/concepts/model-failover](/concepts/model-failover) (ротация + правила cooldown)
* [/tools/slash-commands](/tools/slash-commands) (поверхность команд)
