--login / --logout / --whoami по-прежнему поддерживается как псевдоним для обратной совместимости.
Аутентификация — добровольная. Политики, панель управления, страница /audit и все остальные локальные функции работают одинаково независимо от того, вошли ли вы в систему или нет. Экран входа существует для функций, которые требуют стабильного идентификатора (напоминания о переаудите сегодня, в будущем и больше).
Процесс входа
~/.failproofai/auth.json (режим 0600). Тот же сеанс станет видимым в панели приложения — при нажатии [ set a reminder ] на /audit вы будете отображаться как вошедший в систему.
Панель управления предоставляет тот же процесс в виде модального диалога на /audit для пользователей, которые никогда не используют CLI.
Выход из системы
~/.failproofai/auth.json. Если api-сервер недоступен, локальный файл удаляется в любом случае — локальное намерение выйти из системы всегда имеет приоритет.
Проверка личности
<email> (<user uuid>) и завершает работу с кодом 0, если существует действительный сеанс, или not signed in и завершает работу с кодом 1 в противном случае. Незаметно обновляет маркер доступа в фоне, если до его истечения остаётся менее минуты.
Постоянное напоминание о переаудите
Когда вы нажимаете[ set a reminder ] на странице /audit (или входите через модальное окно, которое вскрывает кнопка), панель управления создаёт небольшой вспомогательный файл в ~/.failproofai/next-audit.json:
0600, как и auth.json.
Точка доступа /api/auth/reminder панели управления предоставляет GET (чтение), POST (установка / переназначение) и DELETE (очистка) и требует активный сеанс.
Содержимое ~/.failproofai/auth.json
0600 (чтение/запись только для владельца). Маркер доступа — это JWT на основе HS256 с временем жизни 1 час; маркер обновления — это непрозрачная случайная строка на 256 бит, которую сервер хранит как SHA-256(token). Повторное использование маркера обновления обнаруживается на стороне сервера и отзывает все сеансы пользователя.
Переменные окружения
| Переменная | По умолчанию | Назначение |
|---|---|---|
FAILPROOF_API_URL | https://api.befailproof.ai | Переопределить базовый URL api-сервера. Полезно для локальной разработки с самостоятельно размещённым api-сервером. |
FAILPROOFAI_AUTH_DIR | ~/.failproofai | Переопределить, где хранится auth.json. В основном для тестов. |
Устранение неполадок
“Could not reach the api-server” — CLI не может открыть TCP-соединение сFAILPROOF_API_URL. Проверьте сетевое соединение или установите FAILPROOF_API_URL, если вы используете самостоятельно размещённый api-сервер.
“Rate limited” — слишком много попыток входа в 15-минутном окне для этой электронной почты (5 на адрес) или IP (20 на IP), либо 30-секундный период ограничения повторной отправки после предыдущего запроса для той же электронной почты. Сообщение об ошибке включает интервал повтора в секундах.
Code rejected — OTP неверен, истёк срок действия или достигнут лимит из 5 неправильных попыток. Запустите failproofai auth login снова, чтобы запросить новый код.
