Обзор

Как работает авторизация проекта

Проект может отдавать собственные эндпоинты авторизации, чтобы фронтенд прогонял настоящий сценарий логина: регистрация, вход, обновление токена и ресурсы, которые без токена отвечают 401.

Включается на странице проекта: откройте «Настройки», включите авторизацию, выберите коллекцию пользователей и сохраните. Регистрация вставляет запись в эту коллекцию — email, password и всё остальное из тела запроса, — так что заведённые вручную пользователи тоже могут логиниться, а данные видны в панели.

В публичном демо-проекте авторизация выключена, поэтому в примерах ниже стоит :publicId — подставь id своего проекта.

Эндпоинты

Регистрация, вход, refresh

методпутьчто делает
POST/registerСоздать пользователя, вернёт токены и запись
POST/authВход по email и паролю
POST/auth/refreshОбменять refresh-токен на новую пару

Тело /register — JSON-объект. Обязательны два поля, остальное на ваше усмотрение:

полетипчто это
emailstringОбязательное. Валидный email, уникальный в пределах коллекции пользователей.
passwordstringОбязательное. Минимум 6 символов, при входе сравнивается как есть.
…anyЛюбые другие поля (name, role, avatar, …) сохраняются в записи пользователя без изменений и возвращаются в data.
пример
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-эндпоинтов:

кодкогда
400Тело не прошло валидацию: нет email или password, невалидный email, пароль короче 6 символов
401Неверные email или пароль · невалидный, истёкший или чужой refresh-токен
409Email уже зарегистрирован в коллекции пользователей
429Слишком много попыток: 20 за 5 минут с одного адреса
Токены

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 зарезервированы, коллекцию так назвать нельзя.

Авторизация в моках · mockly