Когда ваше приложение работает, вам часто нужно знать, кто запускает определенные процессы. Это необходимо для того, чтобы правильно распределить данные и предоставить или ограничить доступ к различным ресурсам. Эта функция используется практически в каждом приложении.
Как определить текущего пользователя в AppMaster
На стороне бэкенда
В AppMaster есть блок Auth: Get Current User в AppMaster для определения текущего пользователя. Он предоставляется модулем Auth. Вы можете найти его в редакторе бизнес-процессов на вкладке backend слева.
Этот блок возвращает запись из базы данных User, которая принадлежит пользователю, запустившему блок.
Важно
Блок Auth: Get Current User работает только для авторизованных пользователей. Во всех остальных случаях результат этого блока будет неопределенным.
С помощью этого простого метода мы можем получить текущего пользователя нашего приложения. Однако этот блок существует только в бэкенде, но в большинстве случаев он необходим для идентификации пользователя во фронтенде приложения.
На стороне фронтенда
Для запуска процессов в бэкенде с фронтенда используются конечные точки. Подробнее о них вы можете узнать в этой статье.
Для блока Auth: Get Current User необходимо создать новую конечную точку, как это сделано на скриншоте ниже:
Для вызова конечной точки из фронтенда необходимо использовать блок Server Request GET /user/get-current (в данном случае). Поток использования конечной точки одинаков для веб- и мобильных приложений.
Работа с текущим пользователем
Рассмотрим несколько примеров использования блока Auth: Get Current User блока использования. Сам блок возвращает запись из таблицы User. Для того чтобы получить конкретные данные из записи, необходимо развернуть эту запись с помощью блока Expand User:
Все поля из вывода можно использовать определенным образом. Например, чтобы проверить, подтверждена ли учетная запись пользователя, можно использовать поле Confirmed типа boolean, как показано на рисунке ниже.
Параметр С
Параметр With в выводе указывает, должен ли запрос выполняться с использованием связанных таблиц. Так, например, чтобы получить данные из таблицы User Sessions для текущего объекта User (то есть список текущих сессий пользователя), необходимо указать значение поля with для поиска связанной таблицы (в данном случае User Sessions).
Важно!
Параметр With усложняет запрос и, следовательно, увеличивает время его обработки. Он не используется по умолчанию и применяется только в случае необходимости.
Заключение
В этой статье мы узнали, как определить текущего пользователя приложения на стороне бэкенда и на стороне фронтенда. Эта функция является одной из наиболее часто используемых при разработке приложений. С помощью AppMaster вы можете легко выполнять эти запросы с помощью нескольких комбинаций блоков бизнес-процессов.