• Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм assistant: страница с чатом ассистента
                  • Фрейм outline: оглавление в тексте
                  • Фрейм faq: вопросы из текста страницы
                  • Фрейм article: статья
                  • Фрейм docs: документация
                  • Фрейм site__header: шапка сайта
                  • Фрейм site__footer: подвал сайта
                  • Фрейм article__faq: вопросы из набора
                  • Фрейм landing: лендинг ассистента
                  • Фрейм assistant__chat: чат обычной разметкой
                  • Фрейм site__404: страница «не найдено»
                  • Фрейм news: лента новостей
                  • Фрейм news__category: рубрика новостей
                  • Фрейм news__post: новость
                  • Фрейм news__more: читайте ещё
                  • Фрейм news__share: поделиться
                  • Фрейм author__page: страница автора
                  • Фрейм author__byline: подпись автора
                  • Фрейм author__card: карточка автора
                  • Фрейм author__avatar: аватар автора
                  • Фрейм author__socials: соцсети автора
                  • Фрейм author__head: объявление набора автора
                  • Фрейм home: главная-документ
                  • Фрейм pricing: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
OnPress OnPress
  • Документация
  • Контакты
Войти
    • Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм assistant: страница с чатом ассистента
                  • Фрейм outline: оглавление в тексте
                  • Фрейм faq: вопросы из текста страницы
                  • Фрейм article: статья
                  • Фрейм docs: документация
                  • Фрейм site__header: шапка сайта
                  • Фрейм site__footer: подвал сайта
                  • Фрейм article__faq: вопросы из набора
                  • Фрейм landing: лендинг ассистента
                  • Фрейм assistant__chat: чат обычной разметкой
                  • Фрейм site__404: страница «не найдено»
                  • Фрейм news: лента новостей
                  • Фрейм news__category: рубрика новостей
                  • Фрейм news__post: новость
                  • Фрейм news__more: читайте ещё
                  • Фрейм news__share: поделиться
                  • Фрейм author__page: страница автора
                  • Фрейм author__byline: подпись автора
                  • Фрейм author__card: карточка автора
                  • Фрейм author__avatar: аватар автора
                  • Фрейм author__socials: соцсети автора
                  • Фрейм author__head: объявление набора автора
                  • Фрейм home: главная-документ
                  • Фрейм pricing: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
Справочник API
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Справочник: вход и служебное

Ручки сети, без префикса сайта. Агенту с op_-токеном из этой страницы нужна только GET /health; ручки /auth обслуживают дашборд. Как устроен вход — дашборд и вход.

GET /health

Токен не нужен.

curl -s "$API/health"
{ "ok": true, "db": true, "realm": "prod" }

db: false и код 503 — сервис жив, база недоступна. realm — контур экземпляра (prod у боевого).

Ручки /auth

Все, кроме GET /auth/me, работают только методом POST (GET — 405 method_not_allowed с Allow: POST). Все, кроме /auth/session, работают по кукам сессии; запросы проверяются по Origin (чужой — 403 cross_origin). Ошибки — в форме {code, message, data: {status}}. Попыток входа — до 30 в минуту с адреса (429 too_many_requests).

POST /auth/session

Обменять ID-токен Firebase на сессию. Токен — заголовком Authorization: Bearer <ID-токен Firebase> (или полем id_token). Вход разрешён почтой с паролем и через Google; почта должна быть подтверждена; человек должен быть в сети или приглашён.

Ответ 201 и две httpOnly-куки (короткая сессионная на 15 минут и долгая для продления на 30 дней):

{
  "success": true,
  "user": { "id": 42, "email": "anna@example.com", "name": "Anna", "is_super_admin": false },
  "session": { "id": "…", "expires_at": "…", "expires_in": 900, "realm": "…" }
}

Отказы: 401 missing_id_token, 401 invalid_id_token, 403 email_required, 403 email_not_verified, 403 provider_not_allowed, 403 user_not_found, 403 cross_origin, 503 auth_not_configured.

POST /auth/refresh

Продлить сессию по долгой куке; секрет куки при этом меняется. Ответ — как у /auth/session. Отказы: 401 no_session, 401 session_expired, 403 user_not_found.

POST /auth/logout

Выйти на этом устройстве. Всегда успех: {"success": true, "revoked": 1} (или 0, если сессии уже не было).

POST /auth/logout-all

Выйти на всех устройствах: {"success": true, "revoked": <число>}. Токен API и пароли приложений продолжают работать. Отказы: 401 no_session.

GET /auth/me

Состояние сессии (профиль целиком — GET /me):

{ "success": true, "user": { "id": 42, "email": "anna@example.com", "name": "Anna", "is_super_admin": false }, "session": { "id": "…", "realm": "…" } }

Отказы: 401 no_session, 403 user_not_found.

POST /auth/ticket

Одноразовый билет на две минуты для запроса в первую версию API (/wp-json/onpress/v1/…) на домене сайта, куда кука дашборда не доезжает. Сайт — site_id, blog_id или domain (в теле или строке запроса). Билет предъявляется как Authorization: Bearer <билет> или X-OnPress-Ticket.

Выдаётся только по сессии дашборда. С op_-токеном билет не нужен — первая версия API принимает токен напрямую:

curl -s -X POST "$API/auth/ticket"
{ "code": "no_session", "message": "a ticket is issued against a dashboard session cookie; with an op_ token call the site API directly — it accepts the token itself", "data": { "status": 401 } }

Отказы: 401 no_session, 400 blog_required, 400 invalid_blog_id, 404 site_not_found, 403 insufficient_role, 403 cross_origin.

arrow_backНазад
Справочник: пользователи и профиль
Далееarrow_forward
Ошибки и частые проблемы
На этой странице
  • GET /health
    • Ручки /auth
      • POST /auth/session
        • POST /auth/refresh
          • POST /auth/logout
            • POST /auth/logout-all
              • GET /auth/me
                • POST /auth/ticket
              OnPress
              OnPress
              ИП Зуев И.В. ИНН: 360408359441
              © 2026
              политика конфиденциальности публичная оферта
              • visa
              • mastercard
              • sber
              • tpay