nb env auth

Повторно аутентифицирует сохранённыое коружение NocoBase или обновляет сохранённые для него данные аутентификации. Если имя окружения не указано, используется текущее окружение.

nb env auth поддерживает три метода аутентификации: basic, token и oauth. Если --auth-type не указан, CLI сначала определяет метод по переданным параметрам аутентификации. Если метод всё ещё нельзя определить, используется метод аутентификации, уже сохранённый в окружении.

Использование

nb env auth [name] [flags]

Параметры

ПараметрТипОписание
[name]stringИмя настроенного окружения, в которое нужно войти; если не указано, используется текущее окружение
--auth-type, -astringСпособ аутентификации: basic, token или oauth
--access-token, -tstringКлюч API или токен доступа для способа аутентификации token
--usernamestringИмя пользователя для способа аутентификации basic; в TTY запрашивается при отсутствии
--passwordstringПароль для способа аутентификации basic; в TTY запрашивается при отсутствии

Параметры совместимости

ПараметрТипОписание
--env, -estringИмя окружения, эквивалентно [name]. Этот скрытый параметр сохранён для совместимости с другими командами; обычно достаточно позиционного аргумента

Примечания

Методы аутентификации работают так:

  • basic: выполняет вход в NocoBase по имени пользователя и паролю, затем сохраняет возвращённый access token и имя пользователя
  • token: сохраняет API key или access token, переданный через --access-token
  • oauth: запускает поток аутентификации в браузере, затем сохраняет access token после завершения аутентификации

В интерактивном терминале CLI при необходимости запрашивает --auth-type, --username, --password или --access-token. В неинтерактивном режиме для аутентификации basic требуются и --username, и --password.

Аутентификация oauth сначала пытается использовать Device Authorization Grant. Если OAuth-сервер поддерживает этот поток, команда выводит URL проверки и пользовательский код, а затем опрашивает сервер, пока подтверждение в браузере не завершится. Это работает на удалённых или headless-серверах, потому что локальный callback-listener не требуется.

Если OAuth-сервер не предоставляет device authorization endpoint, команда возвращается к потоку PKCE loopback: запускает локальный callback-сервис, открывает браузер для авторизации, выполняет обмен token и сохраняет его в файл конфигурации.

После успешной аутентификации CLI автоматически запускает nb env update <name>, чтобы повторно синхронизировать состояние env.

Ограничения

  • [name] и --env не могут одновременно указывать разные имена окружения
  • --access-token нельзя использовать вместе с --username или --password
  • --auth-type oauth нельзя использовать вместе с --access-token, --username или --password
  • --auth-type token нельзя использовать вместе с --username или --password
  • --auth-type basic нельзя использовать вместе с --access-token
  • --access-token, --username и --password не могут быть пустыми после передачи

Примеры

# Аутентифицировать текущий env сохранённым методом аутентификации
nb env auth

# Аутентифицировать конкретный env
nb env auth prod

# Использовать OAuth-вход в браузере
nb env auth prod --auth-type oauth

# Войти по имени пользователя и паролю
nb env auth prod --auth-type basic --username admin --password secret

# Сохранить API key или access token
nb env auth prod --auth-type token --access-token <api-key>

Для device authorization откройте URL, выведенный командой, и введите показанный код в браузере.

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