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

01

Данные пользователя администратора приложения по умолчанию:

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: позволяет создавать и редактировать группы пользователей;

module_auth_settings

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

data model

Обе модели автоматически создают блоки бизнес-процессов (далее, БП).

Бизнес процессы User, User Session, Auth

Предустановленные БП, связанные с User и User Sessions, следующие:

  • User Model

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

db_delete_user

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

db_update_user

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

db_create_user

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

db_soft_delete_user

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

db_bulk_delete_user

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

db_patch_user

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

db_search_user

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

db_getone_user

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

expand_user

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

make_user

  • User Session

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

db_delete_user_session

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

db_update_user_session

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

db_create_user_session

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

db_soft_delete_user_session

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

db_bulk_delete_user_session

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

db_patch_user_session

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

db_search_user_session

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

db_getone_user_session

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

expand_user_session

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

make_user_session

  • Auth Module

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

auth_generate_auth_token

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

auth_registration

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

auth_authorization

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

auth_authentification

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

auth_logout

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

auth_get_current_user

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

auth_remove_user_from_group

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

auth_add_user_to_group

    • Auth: Hash Password: конвертация строки пароля в хеш;auth_hash_password
  • Auth: Restore Password: принимает логин и новый пароль пользователя, тем самым сбрасывая его;

auth_restore_password

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

auth_change_password

  • Auth: Probe Password: проверка соответствия пароля и хеша;

auth_probe_pw
Endpoints User, User Session и Auth Module

Предустановленные Endpoints модуля Auth Module и моделей User и User Session автоматически генерируются при создании проекта.

Auth Module

Тип запросаEndpointСвязанный БП
/logoutAuth: Logout
/authAuth: Authentification
/registerAuth: Registration
/confirmAuth: 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 текущей сессии авторизованного пользователя;

get_auth_token

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

set_auth_token

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

remove_auth_token

Получение текущего пользователя

В примере ниже показано, как получить текущего пользователя.

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

get_current_user_be

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

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

get_current_user_mw

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

get_current_user_fe

Was this article helpful?

AppMaster.io 101 Полный курс

10 модулей
2 недели

Не знаете с чего начать? Начните с нашего ускоренного курса для начинающих и изучите AppMaster от А до Я.

Начать обучение
Development it’s so easy with AppMaster!

Остались вопросы?

Наши эксперты с радостью ответят на все ваши вопросы о платформе AppMaster и помогут вам в создании приложений.

headphones

Служба поддержки

Поделитесь своей проблемой с нашими специалистами.

message

Комьюнити AppMaster

Обсудите вопросы с другими пользователями в нашем чате.

Присоединиться