W tym artykule przyjrzymy się, jak platforma AppMaster.io no-code rozwiązuje problem dostępu do danych dla użytkowników aplikacji.
Dzieje się to poprzez wprowadzenie ról takich jak Użytkownicy, Moderatorzy, Administratorzy i inne wymagania. Takie rozwiązanie daje większą elastyczność wewnątrz budowanej aplikacji i kontroluje dostęp do informacji i funkcjonalności wewnątrz budowanej aplikacji.
Artykuł przyda się każdemu, kto chce zanurkować w funkcjonalności platformy AppMaster.io i zobaczyć jej możliwości w zakresie ustawień dostępu do danych przez role.
Мoduł Auth by AppMaster.io
Rejestracja w zmontowanej aplikacji na naszej platformie jest reprezentowana przez moduł Auth, pozwalający na tworzenie i edycję grup użytkowników oraz dostęp do ich praw. Moduł Auth jest już preinstalowany w projekcie podczas jego tworzenia.
Dostępne ustawienia modułu Auth:
SignUp Groups - lista grup użytkowników, którzy mogą się zarejestrować;
SignUp - zawiera możliwość rejestracji w aplikacji;
Session timeout (minutes) - czas, po którym bieżąca sesja Użytkownika zakończy się, jeśli Użytkownik jest bezczynny (w minutach). Domyślnie jest to 60 minut;
Failed login delay (in ms) - czas opóźnienia odpowiedzi serwera w przypadku nieudanej próby logowania (w ms). Domyślnie jest to 0 ms;
Email confirmation required - opcja polegająca na weryfikacji za pomocą poczty elektronicznej, jeśli jest włączona;
Signed-Up User Active - ustawia atrybut active na True dla każdego zarejestrowanego Użytkownika.
Groups - pozwala na tworzenie i edycję grup użytkowników.
AppMaster.io używa Data Model Designer do pracy z modelami.
User i User Session są dwoma modelami automatycznie tworzonymi w Data Model Designer. Preinstalowane pola modelu danych nie mogą być modyfikowane ani usuwane, ale można dodawać nowe.
Dla tych modeli automatycznie tworzone są również bloki procesów biznesowych (BP).
Automatycznie generowane bloki procesów biznesowych związane z sesjami użytkownika i użytkownika
- Model użytkownika
DB: Delete User - usunięcie obiektu User z bazy danych poprzez ID;
DB: Update User - resetuje wszystkie pola bloku obiektu User przekazane do wejścia w bazie danych i aktualizuje je zgodnie z określonymi wartościami (do zmiany tylko określonych pól służy blok DB: Patch User);
DB: Create User - zapisuje w bazie danych i zwraca podany obiekt User (aby go zbudować z podanych pól, należy użyć bloku Make User);
DB: Soft Delete User - aktualizuje atrybut DeletedAt na obiekcie User i pozostawia go w bazie danych;
DB: Bulk Delete User - przyjmuje jako wejście tablicę identyfikatorów (ids) obiektów User, które zostaną usunięte z bazy danych;
failed_ids - tablica identyfikatorów użytkowników, którzy nie zostaną usunięci;
DB: Patch User - aktualizuje określone pola obiektu User w bazie danych (aby wyzerować wszystkie pola, użyj bloku DB: Update User);
DB: Search User - znajduje jeden lub więcej obiektów User w bazie danych na podstawie pól i zwraca je;
DB: GetOne User - znajduje obiekt User w bazie danych po jego ID i zwraca go;
Expand User - zwraca wszystkie pola wybranego obiektu User;
Make User - tworzy w pamięci nowy obiekt User z podanych pól i zwraca go (aby zapisać utworzony obiekt w bazie danych należy użyć bloku DB: Create User);
- Model sesji użytkownika
DB: Delete User Session - usuwa z bazy danych obiekt User Session o przekazane ID;
DB: Update User Session - resetuje wszystkie pola obiektu User Session przekazanego do bloku wejściowego w bazie danych i aktualizuje je zgodnie z podanymi wartościami (aby zmienić tylko podane pola, użyj bloku DB: Patch User Session);
DB: Create User Session - zapisuje w bazie danych i zwraca podany obiekt User Session (aby go zbudować z podanych pól, użyj bloku Make User Session);
DB: Soft Delete User Session - aktualizuje atrybut DeletedAt obiektu User Session i pozostawia go w bazie danych;
DB: Bulk Delete User Session - przyjmuje jako dane wejściowe zbiór ID obiektów User Session, które zostaną usunięte z bazy danych;
failed_ids - tablica określa zbiór ID, które nie zostaną usunięte;
DB: Patch User Session - aktualizuje określone pola obiektu User Session w bazie danych (aby wyzerować wszystkie pola, użyj bloku DB: Update User Session);
DB: Search User Session - znajduje jeden lub więcej obiektów User Session w bazie danych na podstawie pól i zwraca je;
DB: GetOne User Session - znajduje obiekt User Session w bazie danych po jego ID i zwraca go;
Expand User Session - zwraca wszystkie pola wybranego obiektu User Session;
Make User Session - tworzy w pamięci nowy obiekt User Session na podstawie podanych pól i zwraca go (aby zapisać utworzony obiekt w bazie danych należy użyć bloku DB: Create User Session);
- Moduł Auth
Auth: Generate Auth Token -generuje token autoryzacyjny (Auth Token) o podanej długości;
Auth: Registration - rejestruje nowego użytkownika;
Auth: Authorization - sprawdza czy Auth Token istnieje w systemie i zwraca użytkownika z nim związanego;
Auth: Authentification - sprawdza login i hasło użytkownika i zwraca Auth Token;
Auth: Logout - przyjmuje Auth Token i kończy bieżącą sesję użytkownika;
Auth: Get current user - zwraca dane bieżącego użytkownika;
Auth: Remove user from the group - usuwa użytkownika z określonej grupy po jego ID (zdefiniowanym w ustawieniach modułu Auth);
Auth: Add user to the group - dodaje użytkownika do określonej grupy użytkowników po jego ID (zdefiniowanym w ustawieniach modułu Auth);
Auth: Hash Password - konwersja ciągu haseł na hash;
Auth: Restore Password - przyjmuje nazwę użytkownika i nowe hasło użytkownika, tym samym resetując je;
Auth: Change Password - zastępuje aktualne hasło użytkownika nowym;
Auth: Probe Password - weryfikacja hasła i dopasowanie hasha;
Punkty końcowe modułu Auth oraz modele User i User Session są generowane automatycznie podczas tworzenia projektu.
Moduł Auth
Typ żądania | Punkt końcowy | Podłączony BP |
---|---|---|
/logout/ | Auth: Logout | |
/auth/ | Auth: Authentification | |
/register/ | Auth: Rejestracja | |
/confirm/ | Auth: Registration | |
/user/change-password | Auth: Zmiana hasła | |
/user/restore-password/ | Auth: Przywróć hasło | |
/user/profile/ | Auth: Autoryzacja |
Użytkownik
Typ żądania | Punkt końcowy | Podłączony BP |
---|---|---|
/user/:id/ | DB: Aktualizacja użytkownika | |
/user/:id/ | DB: Usuń użytkownika | |
/user/:id/ | DB: GetOne User | |
/user/ | DB: Wyszukaj użytkownika | |
/user/:id | DB: Załatw użytkownika | |
/user/ | DB: Tworzenie użytkownika |
Sesja użytkownika
Typ żądania | Punkt końcowy | Podłączony BP |
---|---|---|
/user-session/:id/ | DB: Usuń sesję użytkownika | |
/user-session/:id/ | DB: Uzyskaj jedną sesję użytkownika | |
/user-session/ | DB: Wyszukaj sesję użytkownika | |
/user-session/:id/ | DB: Wypełnij sesję użytkownika | |
/user-session/ | DB: Tworzenie sesji użytkownika | |
/user-session/:id/ | DB: Aktualizacja sesji użytkownika |
Auth Token jest używany jako bieżący token sesji uprawnionego Użytkownika. W aplikacji webowej BP możliwa jest interakcja z tym tokenem:
- Get Auth Token zwraca Auth bieżącej uwierzytelnionej sesji użytkownika;
- Set Aut h Token nadpisuje Auth Token bieżącej sesji uwierzytelnionego użytkownika;
- Remove Aut h Token usuwa Auth Token bieżącej sesji autoryzowanego użytkownika;
Przykład pokazuje, jak uzyskać bieżącego użytkownika.
W tym celu należy przejść do zakładki Business logic i przeciągnąć blok Auth: Get current user block.
Następnie dla utworzonego BP tworzony jest Endpoint, który będzie służył do kontaktu z serwerem w celu uzyskania obiektu bieżącego Użytkownika.
Wybierz grupę użytkowników w sekcji Endpoints i utwórz metodę żądania GET dla nowo utworzonego procesu, aby uzyskać bieżącego Użytkownika.
W aplikacji internetowej BP wykonaj żądanie do utworzonego punktu końcowego (Server request GET /user_current), aby uzyskać bieżącego użytkownika.
Grupy i uprawnienia
Grupy użytkowników tworzone są w ustawieniach modułu Auth. Aby przejść do ustawień modułu, należy otworzyć sekcję Moduły i kliknąć kartę odpowiedniego modułu.
Karta Grupy zawiera listę wszystkich istniejących grup. Kliknij przycisk Dodaj nowy element, aby utworzyć nową grupę User. W nowym oknie modalnym można dostosować grupę, dodać opis, ikonę, kolor ikony i etykiety oraz znacznik.
Aby edytować istniejące grupy użytkowników, musisz również przejść do ustawień modułu Auth. W tym celu należy przejść do sekcji Moduły i kliknąć na kartę odpowiedniego modułu. Następnie w zakładce Groups dostępna będzie lista grup, aby ją edytować należy kliknąć na ikonę ustawień. W nowym oknie modalnym można dostosować grupę, zmienić jej opis, ikonę, kolor ikony i etykiety oraz znacznik.
Do zmiany praw odczytu/zapisu wpisów w bazie danych dla określonych grup użytkowników służy Middleware modułu Auth.
W sekcji Endpoints wybierz Endpoint, którego uprawnienia do odczytu/zapisu chcesz zmienić. Kliknij przycisk settings w wybranym Endpoint i w otwartym oknie modalnym przejdź do zakładki Middleware. Następnie, klikając na Edit settings w wierszu z Token Auth Middleware, ustaw prawa dostępu.
Dostęp do stron w aplikacji webowej: Należy przejść do aplikacji webowej i kliknąć przycisk Ustawienia strony, do której chcemy ograniczyć dostęp.
W polu Show for groups należy wybrać listę grup użytkowników, którzy będą mogli oglądać tę stronę. Domyślnie pole jest puste, a dostęp jest dozwolony dla wszystkich kategorii użytkowników.
Podsumowanie
Dostęp do danych według ról to wygodny sposób na zorganizowanie przepływu informacji dla określonych grup użytkowników. Dzięki platformie no-code AppMaster.io możesz przetestować tę funkcję w wersji próbnej.
Jeśli jesteś pod wrażeniem funkcjonalności, zdobądź nasz plan Professional, który obejmuje tę funkcję, a także eksport plików binarnych, regularne tworzenie kopii zapasowych, przenoszenie projektów i wiele więcej. Czekamy na Ciebie na platformie AppMaster.io, aby zrealizować nawet najbardziej śmiałe projekty.