Kiedy Twoja aplikacja jest uruchomiona, często musisz wiedzieć, kto uruchamia określone procesy. Jest to konieczne, aby prawidłowo dystrybuować dane i przyznawać lub ograniczać dostęp do różnych zasobów. Ta funkcja jest używana w prawie każdej aplikacji.
Jak zidentyfikować aktualnego użytkownika w AppMasterze
Po stronie backendu
W AppMasterze znajduje się blok Auth: Get Current User block w AppMasterze, aby wykryć bieżącego użytkownika. Jest on dostarczany przez moduł Auth. Można go znaleźć w edytorze procesów biznesowych w zakładce backend po lewej stronie.
Ten blok zwraca rekord z bazy danych User, który należy do użytkownika, który uruchomił ten blok.
Ważne
Blok Auth: Get Current User działa tylko dla autoryzowanych użytkowników. W każdym innym przypadku wynik tego bloku będzie niezdefiniowany.
Dzięki tej prostej metodzie możemy uzyskać aktualnego użytkownika naszej aplikacji. Blok ten istnieje jednak tylko w backendzie, ale w większości przypadków jest wymagany do identyfikacji użytkownika we frontendzie aplikacji.
Po stronie frontendu
Do uruchamiania procesów w backendzie z poziomu frontendu służą punkty końcowe. Więcej informacji na ich temat można znaleźć w tym artykule.
W przypadku bloku Auth: Get Current User block należy stworzyć nowy endpoint, tak jak to zrobiono na poniższym zrzucie ekranu:
Aby wywołać endpoint z frontendu, należy użyć bloku Server Request GET /user/get-current (w tym obecnym przypadku). Przepływ użycia punktu końcowego jest taki sam dla aplikacji internetowych i mobilnych.
Praca z bieżącym użytkownikiem
Zobaczmy kilka przykładów użycia bloku Auth: Get Current User wykorzystanie bloku. Sam blok zwraca rekord z tabeli User. Aby uzyskać konkretne dane z tego rekordu, należy go rozwinąć za pomocą bloku Expand User:
Wszystkie pola z wyjścia mogą być wykorzystane w określony sposób. Na przykład do sprawdzenia czy konto użytkownika jest potwierdzone można użyć pola Confirmed typu boolean jak na obrazku poniżej.
Parametr Z
Parametr With na wyjściu określa, czy zapytanie ma być wykonane z wykorzystaniem powiązanych tabel. Czyli np. aby uzyskać dane z tabeli User Sessions dla bieżącego obiektu User (czyli listę bieżących sesji użytkownika), należy podać wartość dla pola With, aby wyszukać powiązaną tabelę (w tym przypadku User Sessions).
Ważne!!!
Parametr With komplikuje zapytanie, a tym samym zwiększa jego czas przetwarzania. Nie jest on używany domyślnie i jest używany tylko w razie potrzeby.
Podsumowanie
W tym artykule dowiedzieliśmy się jak określić aktualnego użytkownika aplikacji po stronie backendu oraz po stronie frontendu. Funkcja ta jest jedną z najczęściej używanych w rozwoju aplikacji. Dzięki AppMasterowi możesz łatwo wykonywać te żądania za pomocą kilku kombinacji bloków procesów biznesowych.