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

# Вход в систему

> Войдите в FailproofAI из CLI, чтобы включить напоминания и персонализированные функции

```bash theme={null}
failproofai auth login    # email + одноразовый код
failproofai auth logout   # отозвать этот сеанс
failproofai auth whoami   # вывести идентификацию вошедшего пользователя
```

Устаревшая форма флагов `--login` / `--logout` / `--whoami` по-прежнему поддерживается как псевдоним для обратной совместимости.

Аутентификация является опциональной. Политики, приборная панель, страница `/audit` и все остальные локальные функции работают одинаково независимо от того, вошли вы в систему или нет. Интерфейс входа существует для того, чтобы функции, которым **требуется** стабильная идентификация (напоминания о переаудите сегодня, более в будущем), имели якорь.

## Процесс входа

```bash theme={null}
failproofai auth login
```

Запрашивает ваш адрес электронной почты, отправляет на него 6-значный одноразовый код, запрашивает код и при успехе записывает `~/.failproofai/auth.json` (режим `0600`). Тот же сеанс затем видим на встроенной приборной панели — нажатие `[ set a reminder ]` на `/audit` покажет вас как вошедшего.

Приборная панель предоставляет тот же процесс в виде модального диалога на `/audit` для пользователей, которые никогда не работают с CLI.

## Выход

```bash theme={null}
failproofai auth logout
```

Отзывает текущий сеанс на сервере и удаляет `~/.failproofai/auth.json`. Если api-сервер недоступен, локальный файл удаляется в любом случае — локальное намерение выйти всегда имеет приоритет.

## Проверка идентификации

```bash theme={null}
failproofai auth whoami
```

Выводит `<email> (<user uuid>)` и выходит с кодом 0, когда существует действительный сеанс, или `not signed in` и выходит с кодом 1 в противном случае. Молча обновляет токен доступа в фоне, если он находится в пределе минуты до истечения.

## Постоянное напоминание о переаудите

Когда вы нажимаете **`[ set a reminder ]`** на странице `/audit` (или входите через модальное окно, которое закрывает кнопка), приборная панель записывает небольшой сопутствующий файл в `~/.failproofai/next-audit.json`:

```json theme={null}
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
```

Этот файл привязан к электронной почте, для которой он был установлен — переключение сеанса CLI на другой аккаунт скрывает любое напоминание, принадлежащее предыдущему пользователю. Смещение по умолчанию — **7 дней**, позже будет настраиваться при внедрении планировщика. Создан с разрешениями `0600` как `auth.json`.

Конечная точка `/api/auth/reminder` приборной панели предоставляет `GET` (чтение), `POST` (установка / переплан) и `DELETE` (очистка) и требует активного сеанса.

## Что находится в `~/.failproofai/auth.json`

```json theme={null}
{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
```

Создан с разрешениями `0600` (чтение/запись только владельцем). Токен доступа — это 1-часовой HS256 JWT; токен обновления — это непрозрачная 256-битная случайная строка, которую сервер хранит как `SHA-256(token)`. Повторное использование токена обновления обнаруживается на стороне сервера и отзывает все сеансы пользователя.

## Переменные окружения

| Переменная             | По умолчанию                 | Назначение                                                                                                          |
| ---------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `FAILPROOF_API_URL`    | `https://api.befailproof.ai` | Переопределить базовый URL api-сервера. Полезно для локальной разработки с самостоятельно размещенным api-сервером. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai`             | Переопределить, где хранится `auth.json`. В основном для тестов.                                                    |

См. [Переменные окружения](/ru/cli/environment-variables) для полного списка.

## Устранение неполадок

**"Could not reach the api-server"** — CLI не может открыть TCP-соединение с `FAILPROOF_API_URL`. Проверьте вашу сеть или установите `FAILPROOF_API_URL`, если вы запускаете самостоятельно размещенный api-сервер.

**"Rate limited"** — слишком много попыток входа в течение 15-минутного окна для этого адреса электронной почты (5/email) или IP (20/IP), или 30-секундная задержка перед повторной отправкой после предыдущего запроса для того же адреса. Сообщение об ошибке содержит окно retry-after в секундах.

**Code rejected** — OTP был неправильным, истек или строка достигла блокировки после 5 неправильных попыток. Запустите `failproofai auth login` снова, чтобы запросить новый код.
