Logowanie 

Zasada

Logowanie XTEND oparte jest na wywołaniu usługi sieciowej poprzez działanie użytkownika.

Poniższy dokument opisuje implementację funkcji logowania w witrynie referencyjnej ASAMPLE.

W tym przykładzie, podprogram logowania potwierdza podpis i wysyła informacje do konta użytkownika:

  • Tożsamość użytkownika, która jest przechowywana w jednostce sesji
  • Lista adresowa wysyłki, która jest przechowywana w formie jednostek typu „Czynność” w celu wyświetlenia

Jeżeli witryna XTEND utworzona została z kopii witryny ASAMPLE, to rekordy ustawień są już obecne.

W przeciwnym wypadku istnieje możliwość utworzenia ich lub skopiowania kolejno z witryny ASAMPLE przez użycie przycisku czynności X3 „Kopiuj”.

Procedura

1. Tworzenie strony WWW (ALOGIN) w celu wprowadzenia kodu/hasła użytkownika.
Strona zostaje wyświetlona w trybie zabezpieczonym (HTTPS)

2. Tworzenie interfejsu (AXTDLOGIN) w celu wywołania usługi sieciowej logowania

3. Tworzenie jednostek (ASHIPADDR) w celu przechowywania informacji o koncie użytkownika

4. Tworzenie „czynności sieci” typu „Logowanie” (ASESSLOGIN)
Ustawienia po wprowadzeniu: kod użytkownika i hasło.
Te ustawienia są „mapowane” na ustawieniach po wprowadzeniu usługi sieciowej.

5. Tworzenie tokenu „łącza dynamicznego” (ADLKLOGIN)
Wstawiony na stronie HTML (przycisk „Zatwierdź”) w celu wywołania czynności użytkownika

6. Tworzenie „strony WWW” (AUSERACCOUNT)
Wyświetla informacje o koncie użytkownika wysłane przez podprogram logowania
Strona zostaje wyświetlona w trybie zabezpieczonym (HTTPS)

Zarządzanie logowaniem dla witryny ASAMPLE

Funkcjonowanie przetwarzania logowania dla witryny ASAMPLE

Informacja logowania XTEND jest zarządzana w rekordzie użytkownika X3.

Użytkownika XTEND jest zadeklarowany jako Użytkownik X3 , dla którego zaznaczono pole wyboru „Połączenie witryny internetowej” .

Jej profil Sage X3 jest odzyskiwany i ładowany w jednostce ASESSION.AUSERPROFILE.

Ustawienia X3

Krok nr 1 - Tworzenie interfejsu

Przetwarzanie 4GL

Plik AYTXTLOGIN.src zawiera źródła programu logowania.

Dane konta użytkownika są zaprogramowane w „sztywnym kodzie” w procesie przetwarzania.

Konta sage są wykorzystywane do logowania się bez hasła.

Przykład
Przetwarzanie (informacji) logowania dla witryny ATEMPLATE

Rekord podprogramu

Rekord podprogramu AYTXTLOGIN opisuje ustawienia podprogramu.

Dalsze informacje na temat programu logowania można znaleźć w dokumencie czynności użytkownika.

Inne ustawienia (AX*) są wymagane dla wszelkich podprogramów logowania XTEND.

Przed rozpoczęciem należy upewnić się, że podprogram jest opublikowany z nazwą publikacji AXTDLOGIN.

Rekord interfejsu

1. Utwórz rekord interfejsu AXTDLOGIN typu „Czynność podprogramu”.

2. Wybierz nazwę publikacji AXTDLOGIN

3. Upewnij się, że dostęp nie jest chroniony

4. Sprawdź wyświetlanie wszystkich komunikatów

5. Zapisz i zatwierdź

6. Generuj dostęp

Kod ustawień

Grupa

Wymiar

Nazwa ustawienia

AXPARCOD

AX_PAR

20

Kod ustawień

AXPARVAL

AX_PAR

20

Wartość ustawienia

AXUSERCODE

AXLOG_PAR

1

Odzyskany kod użytkownika

AXPWD

AXLOG_PAR

1

Odzyskane hasło użytkownika

AXUSERPROF

AXLOG_PAR

1

Odzyskany profil XTEND

AX3SOL

X3LOG

10

Zwrócone rozwiązanie

AX3FLDR

X3LOG

10

Zwrócony folder

AX3LANG

X3LOG

10

Zwrócony język

AX3USER

X3LOG

10

Zwrócony użytkownik

AX3PWD

X3LOG

10

Zwrócone hasło

AXLOGCOD

AXLOG_RES

50

AXLOCOD / AXLOGVAL: Dodatkowe informacje na temat użytkownika, typu klucza/wartości, które są przechowywane w sesji ROZSZERZONEJ (sekcja ASESSION).

AXLOGVAL

AXLOG_RES

50

Ditto

SHIPADDR1

X3LOG

10

Zwrócona informacja połączona z użytkownikiem

SHIPADDR2

X3LOG

10

ditto

SHIPCITY

X3LOG

10

ditto

SHIPZIP

X3LOG

10

ditto

  • W tym przykładzie ustawienia dotyczące adresów wysyłki (SHIP*) są pogrupowane w grupie o nazwie X3LOG. Mogłaby być użyta inna grupa, jeśli wymiar różniłyby się od grupy zawierającej inne ustawienia AX3*.
  • Inne ustawienia (AX*) są wymagane dla wszelkich podprogramów logowania XTEND.
  • AXLOGCOD / AXLOGVAL: Dodatkowe informacje na temat użytkownika, typu klucza/wartości, które są przechowywane w sesji ROZSZERZONEJ (sekcja ASESSION).
    Np.: NAME/DUPONT,PHONE/0476232526,COMPANY/SAGE...

7. Wygeneruj wszystkie pola interfejsu
Patrz menu 'Narzędzia/Tworzenie pola tokenu'

Pole nie opisane w interfejsie

Pola dotyczące tożsamości użytkownika są wyświetlane w postaci listy kluczy/wartości (AXPARCOD/AXPARVAL) i są ukryte w ustawieniach podprogramu (NAZWISKO, IMIĘ, TELEFON, EMAIL).

Konieczne jest zatem zadeklarowanie tych pól poprzez funkcję XTEND „Pole tokenu”.

Krok nr 2 - Tworzenie jednostek

Tożsamość użytkownika

Pola sterowane przez ustawienia AXPARCOD/AXPARVAL (klucz/wartość) są dodawane automatycznie przez serwer XTEND w sesji użytkownika ASESSION.

Użycie klucza/wartości pozwala ograniczyć liczbę ustawień w podprogramie.

Adres wysyłki

Utwórz jednostkę ASHIPADDR typu Czynność

Patrz menu „Narzędzia/Wprowadzanie – pomoc”.

Jednostka ta jest następnie wykorzystywana w mapowaniu zwrotnym czynności logowania.

Krok nr 3 - Tworzenie działania sieciowego

Raportowanie ustawień

Utwórz czynność ASESSLOGIN typu Logowanie z polami AXUSERCODE i AXPWD jak ustawienia po wprowadzeniu.

Kasowanie na starcie'
niezaznaczone: w celu usunięcia jednostek tylko wtedy, gdy login jest sprawdzany.

Raportowanie działań
Tak: dla wszystkich wywołań będą rejestrowane w logu

Aktywne przy powtórnym ładowaniu
Nie: nie przywoływanie logowania, jeśli użytkownik naciśnie klawisz F5

Mapowanie ustawień na wejściu

Ma to na celu dopasowanie pola XTEND do ustawień wywołania usługi sieciowej logowania.

W tym przykładzie konieczne jest tylko mapowanie ustawień czynności AXUSERCODE, AXPWD.

Kod podmiotu nie będzie wprowadzany w celu «mapowania» ustawień działań.

Mapowanie ustawień na wyjściu

Ma to na celu stworzenie jednostki typu Czynność ASHIPADDR w oparciu o dane przesłane przez X3.

Ta jednostka posiada typ multi, ponieważ opiera się na grupie wielo-wymiarowych ustawień (AXLOG_PAR).

Jednostki typu Czynność są archiwizowane do późniejszego wykorzystania podczas sesji użytkownika.

Zostają one automatycznie odtworzone po każdym wywołaniu działania.

Krok nr 4 - Tworzenie dynamicznego łącza

Dynamiczne łącze ADLKLOGIN jest tokenem, który jest wstawiany w przycisku logowania (znacznik <input>). Służy do określenia strony docelowej (tutaj bieżącej strony) w celu skojarzenia czynności ASESSLOGIN i określenia wartości ustawień.

Parametry ogólne

Raportowanie działań
Tak: by każde kliknięcie łącza zostało zarejestrowane w logu

Wymuszenie trybu http post
Nie: Ponieważ działanie na ustawieniach jest związane z łączem dynamicznym, zapytanie zostaje automatycznie wysłane w trybie POST

Bieżąca strona
Tak: Wynik (informacja o użytkowniku jest wyświetlana na bieżącej stronie

Czynność
Kod czynności uruchamiający (ASESSLOGIN)

Kontrola pól sieciowych
Tak: dla ustawienia kodu użytkownika w celu automatycznej kontroli pól w obowiązkowych wpisach
Nie: ustawienie hasła zezwala na wprowadzanie pustych haseł

Ustawienia czynności

Ma to na celu deklarację ustawień czynności logowania i wskazanie metody określenia ich wartości.

AXUSERCODE, AXPWD
'Mand. Web fld': Obowiązkowy wpis w Polu sieć
„Pole sieć”: zawiera nazwę znacznika wejściowego (nazwa atrybutu)

Kontrola wejściu jest aktywna tylko wtedy, gdy opcja „Zakładka ogólna/Kontrola pól sieci” jest zaznaczona.

Zapytanie jest wysyłane do serwera XTEND tylko wtedy, gdy:

  • użytkownik nadał wartości wszystkim wymaganym polom
  • wprowadzone dane są prawidłowe dla wszystkich pól typu data czy numeryczne.

Kontrola zostaje przeprowadzona przez bibliotekę XTEND JavaScript.

Krok nr 5 - Tworzenie tokenów sekcji

Token sekcji ABLKSHIPADDR służy do wyświetlania jednostek ASHIPADDR reprezentujących adresy wysyłki.

Typ
Multi rekord: Wykonuje iterację dla wszystkich jednostek ASHIPADDR i ustawia każdą jednostkę na górze stosu kontekstu danych, a następnie wykonuje tokeny podrzędne

Brak danych
Nic nie wyświetlono: Jeżeli jednostka ASHIPADDR nie istnieje, to sekcje i tokeny podrzędne nie są brane pod uwagę

Jednostka
ASHIPADDR: Kod jednostki do wyświetlenia

Wiersz według sekcji:
10: Wyświetla maksymalnie 10 jednostek ASHIPADDR na stronie

Komórka według wierszy
1: Wyświetla jedną jednostkę wg wiersza

Styl wg pozycji
oddLine oraz evenLine: Styl do zdefiniowania w pliku 'my.css' w celu zmiany koloru tła wierszy

Nie jest możliwe zdefiniowanie kryteriów wyboru w sekcjach wyboru jednostek archiwizowanych na serwerze XTEND, które są typu Sesja lub Czynność. Sekcja wybiera automatycznie wszystkie jednostki.

Kryteria wyboru są stosowane wyłącznie do jednostek typu „Dostęp do danych”.

Krok nr 6 - Tworzenie stron www
Logowanie

Utwórz stronę www ALOGIN.

Strona domyślna
Skojarz login.html.
Plik musi być obecny na serwerze X3 i może zostać wybrany klawiszem F12.

Protokół
Https: Służy do wskazania, że ​​konieczne jest kodowanie danych kwerendy (patrz konfiguracja HTTPS)

Sekcja główna i sekcja tła
Brak

Dostęp chroniony
Nie: Służy do wskazania, że ​​strona jest w otwartym dostępie (anonimowy)

Raportowanie działań
Tak: Służy do rejestracji wyświetlania strony w logu

Konto użytkownika

Utwórz stronę www AUSERACCOUNT.

Strona domyślna
Skojarz plik account.html

Protokół
Https: Służy do wskazania, że ​​konieczne jest kodowanie danych kwerendy

Dostęp chroniony
Tak: Stosowany w celu blokowania dostępu do tej strony anonimowym użytkownikom

Raportowanie działań
Tak: Służy do rejestracji wyświetlania strony w logu

Krok nr 7 – Zatwierdzenie witryny

Po modyfikacji ustawień X3 zaleca się sprawdzenie witryny w całości w celu opracowania słownika serwera XTEND poprzez funkcję 'Zatwierdzenie witryny internetowej (AYTFCYGEN)'.

Zweryfikuj, czy witryna XTEND została opublikowana, tzn. czy zostało zaznaczone pole „Publish the site” (Publikuj witrynę) rekordu „Web site” (Witryna).

Strona HTML

Łącze do strony

Wstawienie tokenu „strony internetowej” ALOGIN w menu po lewej stronie w celu wyświetlenia strony.

<TD class='button'><A adx='ALOGIN'>Login</A></TD>

W celu utworzenia prostego łącza (bez czynności lub wyboru) do strony Web poprzez tag kotwicy wystarczy wprowadzić token typu 'Strona Web' w tagu(<a adx='PageWeb'></a>) w celu ograniczenia liczby tokenów „dynamiczne łącze”.

Zarządzanie menu logowania/wylogowywania

Zawartość menu po lewej stronie jest modyfikowana dynamicznie w zależności od tego, czy użytkownik jest zalogowany.

Do tego celu służy token łącza warunkowego ADISPUSERLOGGEDIN . Wyświetla zawartość sekcji (elementy podrzędne), jeśli użytkownik jest zalogowany.

<!adx='ADISPUSERLOGGEDIN'>
<!--Lewe menu dla uwierzytelnionego użytkownika-->
<TR>
<TD class='button'>
<A adx='AUSERACCOUNT'>Compte</A>
</TD>
</TR>
<TR>
<TD class='button'>
<A adx=»ADLKLOGOUT»>Wyloguj</A>
</TD>
</TR>
<!adx='ADISPUSERLOGGEDIN'>
<!adx='ADISPUSERLOGGEDIN:xnot'>
<!--Lewe menu dla anonimowego użytkownika-->
<TR>
<TD class='button'>
<A adx=»ALOGIN»>Zaloguj</A>
</TD>
</TR>
<!adx='ADISPUSERLOGGEDIN'>

Wpis logowania

Tworzenie pól wejściowych <input type='text'> dla kodu użytkownika i hasła.

W przypadku braku atrybutu nazwa jest określona w znaczniku <input> jest on generowany automatycznie z nazwą tokenu adx.

W wypadku błędu wykrycia przez serwer błędu wczytywania aplikacji X3, ustawienia xrc(<input adx='TokenName:xrc'>) jest stosowany do ponownego wywołania ostatniej wprowadzonej wartości Pozwala on na uniknięcie straty wprowadzanych danych.

Po wprowadzeniu hasła, nazwa atrybutu name='AXPWD' jest dodana, ponieważ nie jest konieczne wstawienie tokenu adx, aby wyświetlić hasło ponownie.

Tworzenie przycisku<input type='button'> „Zatwierdzenie” oraz wstawienie tokena „ADLKLOGIN”, który wyzwala czynność logowania.

Wszystkie przyciski <input type='button'> zawierające tokeny adx muszą być typu „przycisk”.
Nie należy używać typu „prześlij”.

<tr>
<td><b>Code:</b></td>
<td> <input name='AXUSERCODE' type='text' adx='AXUSERCODE:xrc'></td>
<td><input type='button' value='Valider' class='button' adx='ADLKLOGIN'></td>
</tr>
<tr>
<td><b>Password:</b></td>
<td colspan='2'> <input type='password' name='AXPWD'> </td>
</tr>

Token ADLKLOGIN wyświetla stronę AXUSERACCOUNT, jeśli podpis jest weryfikowany przez podprogram X3 .

Działanie użytkownika zostaje uznane za zatwierdzone, jeżeli wywołanie usługi sieciowej nie wyśle żadnego komunikatu błędu.

Komunikaty o błędach są wysyłane w języku 4GL przez podprogram ADDMESSERR (Wywołaj ADDMESSERR(„Komunikat”) z AWEB)

Komunikaty X3 są wyświetlane poprzez token AXUSERMSG.

Na przykład: <span id='userMsg' class='userMsg' adx='aMsgUser'></span>

Wyświetlacz konta użytkownika

Strona AUSERACCOUNT wyświetla informacje o koncie użytkownika. Dane pochodzą z mapowania ustawień wysyłanych przez podprogram logowania:

  • ASESSION przechowuje tożsamość użytkownika
  • lista adresowa (jednostka ASHIPADDR)

Wyświetlanie danych tożsamości polega na pozycjonowaniu tokena „Pola sieci” bez określenia kontekstu danych (token sekcji), ponieważ dane sesji można otworzyć na stronie www.

<tr>
<td><b>Nom:</b></td>
<td adx='NAME'></td>
</tr><tr>
<td><b>Prénom:</b></td>
<td adx='FIRSTNAME'></td>
</tr><tr>
<td><b>EMail:</b></td>
<td adx='EMAIL'></td>
</tr><tr>
<td><b>Tél.:</b></td>
<td adx='PHONE'></td>
</tr>

Wyświetlanie listy adresów wysyłki polega na pozycjonowaniu sekcji ABLKSHIPADDR, która wykonuje iterację na liście adresowej, a tym samym umożliwia utworzenie tylu wierszy w tabeli, ile jest adresów na liście.

Dla każdego wiersza możliwe jest utworzenie tylu komórek, ile jest danych do wyświetlenia dzięki znacznikowi adx='SHIP*'.

<table width="'100%'" border="'1'><BR/"> <tr class='tabTitle'>
<th><small><b>Adresse1</b></small></th>
<th><small><b>Adresse2</b></small></th>
<th><small><b>Ville</b></small></th>
<th><small><b>Kod pocztowy</b></small></th>
</tr>
<!adx='ABLKSHIPADDR'>
<tr adx='aLineStyle:xattr=Class'>
<td><small adx='SHIPADR1'></small></td>
<td><small adx='SHIPADR2'></small></td>
<td><small adx='SHIPCITY'></small></td>
<td><small adx='SHIPZIP'></small></td>
</tr>
<!adx='ABLKSHIPADDR'>
</table>

W celu wyświetlenia wierszy tabeli w różnych kolorachustawiany jest token adx w znaczniku <tr>.
<tr adx='aLineStyle:xattr=Class'>

aLineStyle zawiera nazwę klasy, a xAttr=Class wskazuje, że konieczne jest określenie wartości atrybutu klasy o wartości pola aLineStyle.

Klasy css (aLineStyle), które stosowane są dla wierszy tabeli są zdefiniowane w rekordzie konfiguracji sekcji.

Wyświetlanie opisu strony

<!adx='ABLKDOCHTML'>
<div adx='TEXTE'>
</div>
<!adx='ABLKDOCHTML'>