Как работает авторизация проекта
Проект может отдавать собственные эндпоинты авторизации, чтобы фронтенд прогонял настоящий сценарий логина: регистрация, вход, обновление токена и ресурсы, которые без токена отвечают 401.
Включается на странице проекта: откройте «Настройки», включите авторизацию, выберите коллекцию пользователей и сохраните. Регистрация вставляет запись в эту коллекцию — email, password и всё остальное из тела запроса, — так что заведённые вручную пользователи тоже могут логиниться, а данные видны в панели.
В публичном демо-проекте авторизация выключена, поэтому в примерах ниже стоит :publicId — подставь id своего проекта.
Регистрация, вход, refresh
Тело /register — JSON-объект. Обязательны два поля, остальное на ваше усмотрение:
POST /m/:publicId/register { "email": "ann@team.dev", "password": "secret1", "name": "Ann" }
201 { "token": "eyJhbGciOi…", "refresh_token": "eyJhbGciOi…", "data": { "id": 1, "email": "ann@team.dev", "name": "Ann" } }
Тело /auth — строго email и password, они сверяются с полями записи в коллекции пользователей:
POST /m/:publicId/auth { "email": "ann@team.dev", "password": "secret1" }
Вход и refresh отвечают той же формой, что и регистрация: token, refresh_token и запись пользователя в data без пароля.
Ошибки auth-эндпоинтов:
Access- и refresh-токены
Оба эндпоинта отвечают access-токеном, refresh-токеном и записью пользователя в data (без пароля). Access-токен по умолчанию живёт 1 час — настраивается в настройках проекта от 1 минуты до 30 дней; refresh всегда живёт 30 дней. Отправьте refresh-токен на /auth/refresh телом { "refresh_token": "…" } — получите свежую пару.
POST /m/:publicId/auth/refresh { "refresh_token": "eyJhbGciOi…" }
Защита ресурсов токеном
Когда в проекте включена авторизация, любой ресурс можно отметить приватным — замочком в списке ресурсов или в его настройках. Запросы к приватному ресурсу должны нести access-токен в заголовке Authorization, иначе ответ — 401.
GET /m/:publicId/orders Authorization: Bearer eyJhbGciOi…
Правила и ограничения
Для регистрации нужны email и пароль от 6 символов; лишние поля сохраняются в записи пользователя как есть. Пароли лежат в коллекции открытым текстом как мок-данные — не используйте настоящие. Имена auth и register зарезервированы, коллекцию так назвать нельзя.