Регистрация в созданном приложении представлена модулем 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), чтобы получить текущего пользователя.