Когда ваше приложение работает, вам часто нужно знать, кто запускает определенные процессы. Это необходимо для того, чтобы правильно распределить данные и предоставить или ограничить доступ к различным ресурсам. Эта функция используется практически в каждом приложении.

Как определить текущего пользователя в AppMaster

На стороне бэкенда

В AppMaster есть блок Auth: Get Current User в AppMaster для определения текущего пользователя. Он предоставляется модулем Auth. Вы можете найти его в редакторе бизнес-процессов на вкладке backend слева.

Get Current User block in AppMaster

Этот блок возвращает запись из базы данных User, которая принадлежит пользователю, запустившему блок.

Важно

Блок Auth: Get Current User работает только для авторизованных пользователей. Во всех остальных случаях результат этого блока будет неопределенным.

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

На стороне фронтенда

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

Для блока Auth: Get Current User необходимо создать новую конечную точку, как это сделано на скриншоте ниже:

Get Current User block

Для вызова конечной точки из фронтенда необходимо использовать блок Server Request GET /user/get-current (в данном случае). Поток использования конечной точки одинаков для веб- и мобильных приложений.

Server Request GET

Работа с текущим пользователем

Рассмотрим несколько примеров использования блока Auth: Get Current User блока использования. Сам блок возвращает запись из таблицы User. Для того чтобы получить конкретные данные из записи, необходимо развернуть эту запись с помощью блока Expand User:

Get Current User

Все поля из вывода можно использовать определенным образом. Например, чтобы проверить, подтверждена ли учетная запись пользователя, можно использовать поле Confirmed типа boolean, как показано на рисунке ниже.

AppMaster

Параметр С

Параметр With в выводе указывает, должен ли запрос выполняться с использованием связанных таблиц. Так, например, чтобы получить данные из таблицы User Sessions для текущего объекта User (то есть список текущих сессий пользователя), необходимо указать значение поля with для поиска связанной таблицы (в данном случае User Sessions).

Parameter With

Важно!

Параметр With усложняет запрос и, следовательно, увеличивает время его обработки. Он не используется по умолчанию и применяется только в случае необходимости.

Заключение

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