Вайбкодинг2026-09-138 минРедакция Submarine School

Authorization code Claude: вход и setup-token без путаницы

Authorization code Claude: вход и setup-token без путаницы

Authorization code Claude нужен в двух разных ситуациях. В первой браузер показывает короткий одноразовый код для завершения входа Claude Code в удалённом терминале. Во второй команда claude setup-token создаёт долгоживущий OAuth-токен для сценария, где интерактивный браузерный вход невозможен. Эти значения нельзя использовать взаимозаменяемо.

Если вы работаете на своём Mac или Windows-компьютере, основной путь проще: установите десктопное приложение Claude, войдите в учётную запись и откройте вкладку Code. Ручное копирование кода или токена для обычной десктопной сессии не требуется. Терминальные способы ниже нужны для CLI, SSH, WSL, контейнеров, скриптов и конвейеров автоматизации.

Это не повтор общего руководства как войти в Claude и не инструкция по API key Claude. Здесь разбирается узкая точка: что именно вставлять в запрос Claude Code, почему появляется Invalid code и когда официальный setup-token уместнее обычного входа.

Три похожих значения, которые важно различать

  • Authorization code из браузера является коротким одноразовым кодом. Он завершает уже начатый вход и вставляется только в ожидающий терминальный запрос.
  • CLAUDE_CODE_OAUTH_TOKEN является долгоживущим OAuth-токеном, созданным командой claude setup-token. Его используют в CI и скриптах, где браузерный вход недоступен.
  • ANTHROPIC_API_KEY является ключом Claude Console для прямой оплаты API. Это другой тип учётных данных, другое окружение и отдельный порядок списания.

Документация Anthropic по аутентификации прямо разделяет эти способы. Обычный /login хранит учётные данные подписки, claude setup-token печатает отдельный OAuth-токен, а ANTHROPIC_API_KEY относится к доступу через Claude Console. Если в окружении одновременно находятся несколько значений, Claude Code применяет установленный порядок приоритета и может выбрать не подписку.

Одноразовый код подтверждает конкретный вход. Долгоживущий токен даёт доступ автоматизации. API-ключ оплачивает обращения к API. Сначала определите тип значения, затем решайте, куда его вводить.

Правильный способ входа зависит от того, где работает Claude Code. На вебинаре покажем, как настроить инструмент и перейти от доступа к проверяемой задаче.

Занять место

Сценарий 1: обычный вход в десктопном приложении

  1. Запустите Claude Desktop на macOS или Windows и войдите в свою учётную запись Anthropic.
  2. Откройте вкладку Code и выберите тестовый проект.
  3. Если приложение снова просит авторизацию или показывает 403, полностью выйдите из учётной записи, закройте приложение и войдите заново.
  4. Не переносите в приложение ANTHROPIC_API_KEY из терминала: десктопные сессии используют OAuth и не читают терминальные переменные API-ключа.

Anthropic указывает в описании аутентификации Claude Code, что Desktop и удалённые сессии используют OAuth и не обращаются к apiKeyHelper или переменным API-ключа терминала. Поэтому при проблеме в графическом приложении сначала чините вход самого приложения, а не создавайте новый API-ключ.

По теме: Claude Council: как устроить совет агентов в Claude Code

Сценарий 2: authorization code в SSH, WSL или контейнере

В удалённой среде браузер часто открывается на другом компьютере, а обратный переход не может достучаться до локального порта Claude Code. Тогда после входа браузер показывает одноразовый код. Инструкция Anthropic по устранению проблем входа рекомендует вставить его в строку Paste code here if prompted в том терминале, где был начат вход.

claude auth login
# Откройте выданный адрес в своём локальном браузере
# Вставьте показанный код только в ожидающий запрос терминала
claude auth status --text

Если браузер не открылся, нажмите c в интерактивном приглашении, чтобы скопировать полный адрес, либо возьмите адрес из вывода claude auth login. Не отправляйте одноразовый код другому человеку: даже короткое время жизни не делает его безопасным для чата или снимка экрана.

Практическая проверка одноразового кода

  1. Код получен после того же запуска claude auth login, который сейчас ждёт ввод.
  2. Адрес входа скопирован полностью, без обрезки в узком окне SSH.
  3. В браузере открыта нужная учётная запись и нужная организация Anthropic.
  4. Код вставляется целиком и сразу, пока он не истёк.
  5. После входа claude auth status --text и /status внутри Claude Code показывают ожидаемый способ авторизации.

Ошибка OAuth error: Invalid code обычно означает, что код истёк или был скопирован не полностью. Не пытайтесь дописывать его вручную и не используйте код от предыдущей попытки. Нажмите Enter для новой попытки, снова откройте полный адрес и завершите вход быстрее. Такой порядок приведён в официальной диагностике Anthropic.

Код авторизации открывает доступ, но не заменяет понятную постановку задачи и контроль изменений. На вебинаре вы увидите весь цикл на небольшом цифровом проекте.

Записаться на вебинар

Сценарий 3: claude setup-token для автоматизации

Для CI, скриптов и других сред без интерактивного браузера Anthropic документирует команду claude setup-token. Она проводит пользователя через OAuth, печатает токен в терминал и не сохраняет его автоматически. По текущей документации токен действует до одного года, требует плана Pro, Max, Team или Enterprise и ограничен задачами вывода модели. Он не подходит для Remote Control.

claude setup-token
# Сохраните выданное значение в защищённом хранилище секретов
export CLAUDE_CODE_OAUTH_TOKEN="PASTE_TOKEN_FROM_SETUP_TOKEN"
claude auth status --text

Не вставляйте настоящее значение в репозиторий, .env.example, Dockerfile, журнал сборки или общую команду развёртывания. В локальном тесте используйте временную переменную окружения, а в CI создайте защищённый секрет с ограниченным доступом. После проверки очистите историю и логи, если оболочка или система автоматизации могла вывести токен.

У setup-token есть важное ограничение: режим --bare не читает CLAUDE_CODE_OAUTH_TOKEN. Официальная страница аутентификации советует для --bare использовать ANTHROPIC_API_KEY или apiKeyHelper. Не обходите это ограничение случайными переменными и не переименовывайте токен в API-ключ.

По теме: Kimi в Claude Code: официальное подключение и проверка

Как выбрать способ за минуту

  • Работаете в Claude Desktop: войдите в приложение и используйте вкладку Code. Код терминала не нужен.
  • Работаете интерактивно в локальном CLI: запустите claude или /login и завершите браузерный вход.
  • Работаете через SSH, WSL или контейнер: выполните claude auth login, откройте адрес локально и вставьте одноразовый authorization code.
  • Запускаете CI или скрипт без браузера на подписке Claude: создайте токен через claude setup-token и храните его как секрет.
  • Используете прямой API-биллинг Claude Console: оформляйте API-ключ по отдельной инструкции, не называйте его authorization code.

Почему вход может использовать не те учётные данные

Старый ANTHROPIC_API_KEY в ~/.zshrc, ~/.bashrc, ~/.profile или переменных Windows может получить приоритет над OAuth подписки. В интерактивном режиме Claude Code один раз просит подтвердить использование такого ключа и запоминает выбор. В неинтерактивном режиме -p ключ применяется, если присутствует. Поэтому новый OAuth-код может быть принят, а запросы всё равно пойдут по API-ключу.

unset ANTHROPIC_API_KEY
unset ANTHROPIC_AUTH_TOKEN
claude auth status --text
claude

Команды unset меняют только текущую терминальную сессию. Если после перезапуска ключ появляется снова, найдите конкретную строку в файле запуска оболочки и сделайте резервную копию перед правкой. Не удаляйте конфигурационный файл целиком: там могут быть другие нужные настройки. После изменения запустите /status и убедитесь, что активна ожидаемая учётная запись.

По теме: Claude и Claude Code: в чём разница и что выбрать

Безопасная проверка для CI

  1. Создайте токен на доверенном личном устройстве, а не в общей SSH-сессии.
  2. Сразу перенесите значение в защищённое хранилище секретов и очистите видимый буфер обмена.
  3. Разрешите секрет только конкретному заданию и защищённой ветке, если система CI поддерживает такие ограничения.
  4. Запустите короткую задачу чтения без записи и подтвердите способ входа через claude auth status --text.
  5. Проверьте логи: токен не должен появляться ни полностью, ни в команде с подставленным значением.
  6. Заранее опишите замену токена и владельца процесса, чтобы истечение или отзыв не остановили автоматизацию незаметно.

Токен подписки предназначен для автоматизации вывода модели, но не отменяет лимиты и условия плана. Если вашему конвейеру нужны отдельный бюджет, организация, централизованная ротация или режим --bare, API-доступ через Console может быть более подходящим. Это архитектурный выбор, а не способ исправить Invalid code.

Короткий итог

Authorization code Claude является одноразовым подтверждением браузерного входа и особенно нужен в SSH, WSL и контейнерах. claude setup-token создаёт другой секрет для CI и скриптов без браузера. Десктопное приложение остаётся основным способом работы: войдите в Claude и откройте Code. В терминале сначала определите тип учётных данных, затем проверьте активный способ через статус и только после этого запускайте задачу.

Частые вопросы

Куда вставлять authorization code из браузера?

В тот же терминальный запрос Paste code here if prompted, который появился после запуска входа. Код от другой или завершённой попытки не подойдёт.

Можно ли использовать setup-token вместо API key?

Только в поддерживаемых сценариях Claude Code и автоматизации подписки. Это не универсальная замена ключу Claude API и не работает в режиме --bare.

Почему появляется Invalid code?

Обычно код истёк или был скопирован не полностью. Начните новую попытку и используйте полный адрес входа, полученный от текущего запуска CLI.

Нужен ли setup-token для Claude Desktop?

Нет. Десктопное приложение использует OAuth-вход в учётную запись. setup-token предназначен для терминальной автоматизации без браузера.

Как проверить, что OAuth подписки не перекрыт API-ключом?

Выполните claude auth status --text и /status, затем временно удалите ANTHROPIC_API_KEY из текущей сессии через unset, если он не должен использоваться.

На бесплатном вебинаре вы увидите, как настроить ИИ-инструмент, дать ему понятную задачу и довести сайт, бота или приложение до проверяемого результата.

Записаться на вебинар
Разборы, кейсы и фишки вайбкодинга каждую неделю в телеграм-канале «Яков вайбкодит».
Первый проект с ИИ: живой разбор, бесплатно Занять место