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

# OAuth

OpenClaw поддерживает «аутентификацию по подписке» через OAuth для провайдеров, которые ее предлагают
(в частности, **OpenAI Codex (ChatGPT OAuth)**). Для Anthropic практическое разделение
теперь такое:

* **API-ключ Anthropic**: обычная оплата Anthropic API
* **Anthropic Claude CLI / аутентификация по подписке внутри OpenClaw**: сотрудники Anthropic
  сообщили нам, что такое использование снова разрешено

OpenAI Codex OAuth явно поддерживается для использования во внешних инструментах, таких как
OpenClaw.

OpenClaw хранит и аутентификацию по API-ключу OpenAI, и ChatGPT/Codex OAuth под
каноническим идентификатором провайдера `openai`. Более старые идентификаторы профилей `openai-codex:*` и
записи `auth.order.openai-codex` являются устаревшим состоянием, которое исправляет
`openclaw doctor --fix`; используйте идентификаторы профилей `openai:*` и `auth.order.openai` для
новой конфигурации.

Для Anthropic в production более безопасный рекомендуемый путь — аутентификация по API-ключу.

На этой странице объясняется:

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

OpenClaw также поддерживает **Plugin провайдеров**, которые поставляют собственные
потоки 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` как **приемник токенов**:

* среда выполнения читает учетные данные из **одного места**
* мы можем хранить несколько профилей и маршрутизировать их детерминированно
* повторное использование внешнего CLI зависит от провайдера: Codex CLI может bootstrap пустой
  профиль `openai:default`, но после появления у OpenClaw локального OAuth-профиля
  локальный refresh-токен становится каноническим. Если этот локальный refresh-токен отклонен,
  OpenClaw может использовать пригодный токен Codex CLI того же аккаунта как runtime-only
  fallback; другие интеграции могут оставаться управляемыми извне и перечитывать свое
  хранилище аутентификации CLI
* пути статуса и запуска, которые уже знают настроенный набор провайдеров, ограничивают область
  обнаружения внешнего CLI этим набором, поэтому хранилище входа нерелевантного CLI не
  проверяется для настройки с одним провайдером

## Хранилище (где находятся токены)

Секреты хранятся в хранилищах аутентификации агентов:

* Профили аутентификации (OAuth + API-ключи + необязательные ссылки уровня значений): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
* Устаревший файл совместимости: `~/.openclaw/agents/<agentId>/agent/auth.json`
  (статические записи `api_key` очищаются при обнаружении)

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

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

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

О статических ссылках на секреты и поведении активации runtime-снимка см. [Управление секретами](/ru/gateway/secrets).

Когда у вторичного агента нет локального профиля аутентификации, OpenClaw использует сквозное
наследование из хранилища агента по умолчанию/главного агента. Он не клонирует
`auth-profiles.json` главного агента при чтении. Refresh-токены OAuth особенно
чувствительны: обычные потоки копирования по умолчанию пропускают их, потому что некоторые провайдеры
ротируют или инвалидируют refresh-токены после использования. Настройте отдельный вход OAuth для
агента, когда ему нужен независимый аккаунт.

## Совместимость с устаревшими токенами Anthropic

<Warning>
  В публичной документации Anthropic Claude Code сказано, что прямое использование Claude Code остается в пределах
  лимитов подписки Claude, а сотрудники Anthropic сообщили нам, что использование Claude
  CLI в стиле OpenClaw снова разрешено. Поэтому OpenClaw считает повторное использование Claude CLI и
  `claude -p` санкционированными для этой интеграции, если Anthropic
  не опубликует новую политику.

  Текущие документы Anthropic о тарифах для прямого Claude Code см. в [Using Claude Code
  with your Pro or Max
  plan](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan)
  и [Using Claude Code with your Team or Enterprise
  plan](https://support.anthropic.com/en/articles/11845131-using-claude-code-with-your-team-or-enterprise-plan/).

  Если вам нужны другие варианты в стиле подписки в OpenClaw, см. [OpenAI
  Codex](/ru/providers/openai), [Qwen Cloud Coding
  Plan](/ru/providers/qwen), [MiniMax Coding Plan](/ru/providers/minimax)
  и [Z.AI / GLM Coding Plan](/ru/providers/zai).
</Warning>

OpenClaw также предоставляет setup-token Anthropic как поддерживаемый путь аутентификации по токену, но теперь предпочитает повторное использование Claude CLI и `claude -p`, когда они доступны.

## Миграция Anthropic Claude CLI

OpenClaw снова поддерживает повторное использование Anthropic Claude CLI. Если на хосте у вас уже есть локальный
вход Claude, onboarding/configure может использовать его напрямую.

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

Интерактивные потоки входа OpenClaw реализованы в `openclaw/plugin-sdk/llm` и подключены к мастерам/командам.

### Setup-token Anthropic

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

1. запустите setup-token Anthropic или paste-token из OpenClaw
2. OpenClaw сохраняет полученные учетные данные Anthropic в профиле аутентификации
3. выбор модели остается на `anthropic/...`
4. существующие профили аутентификации Anthropic остаются доступными для отката/управления порядком

### OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth явно поддерживается для использования вне Codex CLI, включая рабочие процессы OpenClaw.

Команда входа по-прежнему использует канонический идентификатор провайдера OpenAI:

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

Используйте `--profile-id openai:<name>` для нескольких аккаунтов ChatGPT/Codex OAuth в
одном агенте. Не используйте `openai-codex:<name>` для новых профилей. Doctor переносит
этот старый префикс в не конфликтующий идентификатор профиля `openai:*`; запустите
`openclaw models auth list --provider openai` после исправления, прежде чем копировать
идентификаторы профилей в `auth.order` или `/model ...@<profileId>`.

Форма потока (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 не может привязаться (или вы работаете удаленно/без GUI), вставить URL/код перенаправления
5. выполнить обмен на `https://auth.openai.com/oauth/token`
6. извлечь `accountId` из access-токена и сохранить `{ access, refresh, expires, accountId }`

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

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

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

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

* если `expires` в будущем → использовать сохраненный access-токен
* если срок истек → обновить (под файловой блокировкой) и перезаписать сохраненные учетные данные
* если вторичный агент читает унаследованный OAuth-профиль главного агента, обновление
  записывается обратно в хранилище главного агента вместо копирования refresh-токена в
  хранилище вторичного агента
* исключение: некоторые учетные данные внешнего CLI остаются управляемыми извне; OpenClaw
  перечитывает эти хранилища аутентификации CLI вместо расходования скопированных refresh-токенов.
  Bootstrap Codex CLI намеренно уже: он создает пустой профиль
  `openai:default`, затем обновления, принадлежащие OpenClaw, сохраняют локальный
  профиль каноническим. Если локальное обновление Codex завершается с ошибкой, а у Codex CLI есть
  пригодный токен для того же аккаунта, OpenClaw может использовать этот токен для текущего
  runtime-запроса, не записывая его обратно в `auth-profiles.json`.

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

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

Два шаблона:

### 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[]`)

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

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

## Связанное

* [Аутентификация](/ru/gateway/authentication) - обзор аутентификации провайдеров моделей
* [Секреты](/ru/gateway/secrets) - хранилище учетных данных и SecretRef
* [Справочник конфигурации](/ru/gateway/configuration-reference#auth-storage) - ключи конфигурации аутентификации
