• Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • 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
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
    • Ошибки и проблемы
      • Коды ошибок
OnPress OnPress
  • Документация
  • Контакты
Войти
  • Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • 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
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
    • Ошибки и проблемы
      • Коды ошибок
Справочник 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