Сайт ↗
Разделы документации
Концепции · 0.8.1

Вход и доступ к данным

Как настроить операции и правила чтения, управлять аккаунтами и разобраться с сессией.

На этой странице

Доступ в Admingen проверяется на сервере. Сначала приложение определяет пользователя, затем проверяет, разрешена ли ему операция. Скрытый пункт меню или поле формы не защищает данные от прямого API-запроса.

Как настроить доступ в Generator UI

  1. В Content откройте настройки сущности и вкладку Access.
  2. В Entity CRUD access включите нужные операции и настройте внешний режим каждой. Административный и внешний доступ задаются отдельно.
  3. В External READ access добавьте условия выдачи, например status equal published. В virtual настройте отдельные блоки источника, выбранных belongsTo и коллекций.
  4. Посмотрите Generated routes, затем выполните Generate → Preview changes → Generate.
  5. Войдите в запущенную систему администрирования. Первый superadmin создаётся по инструкции в терминале; дальше аккаунтами можно управлять через интерфейс.

Аккаунты и роли

После первого входа доступны разрешённые операции с аккаунтами: создание, сброс пароля, блокировка, разблокировка и отзыв сессий. Аккаунт аутентификации отделён от обычных сущностей: удаление записи сущности не удаляет аккаунт.

superadmin управляет административным приложением в рамках его возможностей. admin выполняет разрешённые операции над сущностями. Доступ внешних пользователей настраивается отдельно. Модуль в меню группирует сущности и не является ролью или набором унаследованных прав.

Как работает сессия

При входе сервер выдаёт короткоживущий токен доступа и cookie для обновления сессии. Токен хранится в памяти страницы, а не в постоянном хранилище браузера. После перезагрузки клиент восстанавливает сессию запросом обновления.

Cookie имеет атрибут HttpOnly. При обновлении сессии и выходе сервер проверяет CSRF и источник запроса. Выход, отзыв сессии, смена пароля и блокировка аккаунта влияют на дальнейший доступ. Даже токен с правильной подписью не разрешит работу с уже отозванной сессией.

Маршруты для интеграции

Метод и путь Действие
POST /api/auth/v1/login Войти по учётным данным.
POST /api/auth/v1/refresh Обновить сессию по cookie с проверкой CSRF; тело пустое.
POST /api/auth/v1/logout Завершить сессию; тело пустое.
GET /api/auth/v1/me Получить текущего пользователя.
POST /api/auth/v1/password/change Изменить собственный пароль.
GET/POST /api/admin/v1/_auth/accounts Просмотреть или создать аккаунты с ролью superadmin.
POST /api/admin/v1/_auth/accounts/{accountID}/password-reset Сбросить пароль аккаунта.
POST .../{accountID}/block / unblock Заблокировать или разблокировать аккаунт.
POST .../{accountID}/sessions/revoke Отозвать сессии аккаунта.

Запросы имеют ограничение размера JSON. Вход и смена пароля проверяют состав тела и не принимают произвольные данные. Пароли и токены не должны попадать в URL, публичные данные и журналы.

Если вход не сохраняется после обновления страницы

Проверьте адреса системы администрирования и API, разрешённые источники и cookie. localhost и 127.0.0.1 — разные имена. На сервере используйте согласованное размещение с HTTPS. Произвольное размещение UI и API на несвязанных сайтах не поддерживается для refresh-cookie.

При 403 не отключайте CSRF. Проверьте ожидаемый Origin и фактически загруженную конфигурацию приложения. Настройки прокси и PostgreSQL собраны в руководстве по безопасности окружения.

Кто может прочитать конкретную запись

Режим external определяет, кто вызывает маршрут. readRule определяет, какие записи попадут в external list/get. Чтобы выдавать только опубликованное, явно настройте status = published в Access. Наличие published среди вариантов enum само по себе ничего не ограничивает.

У виртуальной сущности и её коллекций свои правила; правила исходных сущностей не наследуются. Они не меняют административное чтение и операции записи. Подробнее — виртуальные сущности.

Настройка переключателей и условий описана в Content: доступ. Правила записей и настройки окружения решают разные задачи и нужны независимо друг от друга.