Регистрация в созданном приложении представлена модулем Auth, который позволяет создавать и редактировать группы пользователей и права доступа к ним. Модуль Auth встроен в проект при его создании.

Данные пользователя администратора приложения по умолчанию:
Login: [email protected]
Password: appmaster
Настройки модуля позволяют разработчику производить следующие действия:
- SignUp Groups: список групп пользователей, которым доступна регистрация;
- SignUp: включает возможность регистрации в приложении;
- Session timeout (minutes): время, после которого завершится текущая сессия пользователя при его бездействии (в минутах). По умолчанию 60 мин;
- Failed login delay (in ms): время задержки на ответ от сервера при неудачной попытке логина (в мс). По умолчанию 0 мс;
- Email confirmation required: опция, требующая подтверждения через электронную почту, если включена;
- Signed-Up User Active: присваивает атрибуту active значение true для каждого зарегистрированного пользователя User;
- Groups: позволяет создавать и редактировать группы пользователей;

User и User Session – две модели, которые автоматически создаются в Data Model Designer. Предустановленные поля моделей данных нельзя изменить или удалить, но можно добавить новые.

Обе модели автоматически создают блоки бизнес-процессов (далее, БП).
Бизнес процессы User, User Session, Auth
Предустановленные БП, связанные с User и User Sessions, следующие:
-
User Model
- DB: Delete User: удаляет объект User из базы данных по переданному ID;

- DB: Update User: сбрасывает все поля переданного на вход блока User-объекта в БД и обновляет их в соответствии с заданными значениями (чтобы изменить только заданные поля, используется блок DB: Patch User);

- DB: Create User: cохраняет в базе данных и возвращает заданный объект User (чтобы построить его из заданных полей, используется блок Make User);

- DB: Soft Delete User: обновляет DeletedAt атрибут объекта User и оставляет его в БД;

- DB: Bulk Delete User: принимает на вход массив ID ( ids) объектов User, которые будут удалены из БД; failed_ids — массив идентификаторов пользователей, которые не будут удалены;

- DB: Patch User: обновляет заданные поля объекта User в БД (чтобы сбросить все поля, используется блок DB: Update User);

- DB: Search User: находит один или множество объектов User в БД на основе полей и возвращает их;

- DB: GetOne User: находит объект User в БД по его ID и возвращает его;

- Expand User: возвращает все поля выбранного объекта User;

- Make User: создает в памяти новый объект User из заданных полей и возвращает его (чтобы сохранить созданный объект в БД, используется блок DB: Create User);

-
User Session
- DB: Delete User Session: удаляет объект User Session из базы данных по переданному ID;

- DB: Update User Session: сбрасывает все поля переданного на вход блока объекта User Session в БД и обновляет их в соответствии с заданными значениями (чтобы изменить только заданные поля, используется DB: Patch User Session);

- DB: Create User Session: сохраняет в базе данных и возвращает заданный объект User Session (чтобы построить его из заданных полей, используется блок Make User Session);

- DB: Soft Delete User Session: обновляет DeletedAt атрибут объекта User Session и оставляет его в БД;

- DB: Bulk Delete User Session: принимает на вход набор ID объектов User Session, которые будут удалены из БД; failed_ids массив определяет набор IDs, которые не будут удалены;

- DB: Patch User Session: обновляет заданные поля объекта User Session в БД (чтобы сбросить все поля, используется блок DB: Update User Session);

- DB: Search User Session: находит один или множество объектов User Session в БД на основе полей и возвращает их;

- DB: GetOne User Session: находит объект User Session в БД по его ID и возвращает его;

- Expand User Session: возвращает все поля выбранного объекта User Session;

- Make User Session: создает в памяти новый объект User Session из заданных полей и возвращает его (чтобы сохранить созданный объект в БД, используется блок DB: Create User Session);

-
Auth Module
- Auth: Generate Auth Token: генерирует токен авторизации ( Auth Token) заданной длины;

- Auth: Registration: регистрирует нового пользователя;

- Auth: Authorization: проверяет, существует ли Auth Token в системе и возвращает связанного с ним пользователя;

- Auth: Authentification: проверяет логин и пароль пользователя и возвращает Auth Token;

- Auth: Logout: принимает Auth Token и завершает текущую сессию пользователя;

- Auth: Get current user: возвращает данные текущего пользователя;

- Auth: Remove user from group: удаляет пользователя из заданной группы по его ID (определенной в настройках модуля Auth);

- Auth: Add user to group: добавляет пользователя в указанную группу пользователей по его ID (определенную в настройках модуля Auth);

-
Auth: Hash Password: конвертация строки пароля в хеш;

-
Auth: Restore Password: принимает логин и новый пароль пользователя, тем самым сбрасывая его;

- Auth: Change Password: заменяет текущий пароль пользователя на новый;

- Auth: Probe Password: проверка соответствия пароля и хеша;
Endpoints User, User Session и Auth Module
Предустановленные Endpoints модуля Auth Module и моделей User и User Session автоматически генерируются при создании проекта.
Auth Module
Тип запросаEndpointСвязанный БП
/logout__Auth: Logout
/auth__Auth: Authentification
/register__Auth: Registration
/confirm__Auth: Get Current User
_/user/change-password/Auth: Change Password
/user/restore-password/Auth: Restore Password
/user/profile/_Auth: Get Current User
User
Тип запросаEndpointСвязанный БП
_/user/:id/DB: Update User
/user/:id/DB: Delete User
/user/:id/DB: GetOne User
/user/DB: Search User
/user/:id/DB: Patch User
/user/_DB: Create User
User Session
Тип запросаEndpointСвязанный БП
_/user-session/:id/DB: Delete User Session
/user-session/:id/DB: GetOne User Session
/user-session/DB: Search User Session
/user-session/:id/DB: Patch User Session
/user-session/DB: Create User Session
/user-session/:id/_DB: Update User Session
Auth Token
Auth Token используется в качестве токена текущей сессии авторизованного пользователя. В БП веб-приложения есть возможность взаимодействовать с этим токеном:
- Get Auth Token возвращает Auth Token текущей сессии авторизованного пользователя;

- Set Auth Token перезаписывает Auth Token текущей сессии авторизованного пользователя;

- Remove Auth Token удаляет Auth Token текущей сессии авторизованного пользователя;

Получение текущего пользователя
В примере ниже показано, как получить текущего пользователя.
1. Для этого нужно перейти во вкладку Business logic и перетащить блок Auth: Get current user.

2. Далее для созданного БП создается Endpoint, который будет использоваться для обращения к серверу, чтобы получить объект user текущего пользователя.
Выберите группу user в разделе Endpoints и создайте GET метод запроса для только что созданного процесса получения текущего пользователя.

3. В БП веб-приложения выполните запрос к созданному endpoint( Server request GET /user_current), чтобы получить текущего пользователя.

