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: обычный вход в десктопном приложении
- Запустите Claude Desktop на macOS или Windows и войдите в свою учётную запись Anthropic.
- Откройте вкладку Code и выберите тестовый проект.
- Если приложение снова просит авторизацию или показывает 403, полностью выйдите из учётной записи, закройте приложение и войдите заново.
- Не переносите в приложение
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. Не отправляйте одноразовый код другому человеку: даже короткое время жизни не делает его безопасным для чата или снимка экрана.
Практическая проверка одноразового кода
- Код получен после того же запуска
claude auth login, который сейчас ждёт ввод. - Адрес входа скопирован полностью, без обрезки в узком окне SSH.
- В браузере открыта нужная учётная запись и нужная организация Anthropic.
- Код вставляется целиком и сразу, пока он не истёк.
- После входа
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
- Создайте токен на доверенном личном устройстве, а не в общей SSH-сессии.
- Сразу перенесите значение в защищённое хранилище секретов и очистите видимый буфер обмена.
- Разрешите секрет только конкретному заданию и защищённой ветке, если система CI поддерживает такие ограничения.
- Запустите короткую задачу чтения без записи и подтвердите способ входа через
claude auth status --text. - Проверьте логи: токен не должен появляться ни полностью, ни в команде с подставленным значением.
- Заранее опишите замену токена и владельца процесса, чтобы истечение или отзыв не остановили автоматизацию незаметно.
Токен подписки предназначен для автоматизации вывода модели, но не отменяет лимиты и условия плана. Если вашему конвейеру нужны отдельный бюджет, организация, централизованная ротация или режим --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, если он не должен использоваться.
На бесплатном вебинаре вы увидите, как настроить ИИ-инструмент, дать ему понятную задачу и довести сайт, бота или приложение до проверяемого результата.
Записаться на вебинар