Katalog - Zewnętrzny formularz rejestracyjny

Ostatnio modyfikowane 2025/11/07 13:41 przez Jan Slezák

Funkcja zewnętrznego formularza zostanie usunięta w jednej z przyszłych wersji Tritia. Jeśli z niej korzystasz, rozważ jej usunięcie podczas kolejnej aktualizacji swojej strony internetowej.

Istnieje kilka powodów, dla których zdecydowaliśmy się nie wspierać tej funkcji w dłuższej perspektywie. Po pierwsze, ten sposób logowania nie jest już nowoczesny i jest zastępowany różnymi przyciskami logowania (Facebook, Google, Twitter, mojeID itp.), a po drugie stanowi zagrożenie dla bezpieczeństwa.

Należy pamiętać, że przyciski logowania przekierowują (lub wyświetlają okno) na stronę dostawcy logowania (np. mojeID), a po zalogowaniu przekierowują z powrotem. Nikt nie oferuje możliwości umieszczenia formularza logowania bezpośrednio na stronie, a nawet Tritius do logowania za pomocą mojeID wyświetla przycisk logowania.

Formularz logowania zazwyczaj wymaga przesyłania danych między dwiema domenami (strona biblioteki → tritius), co może być podatne na tzw. ataki CSRF. Nasz formularz logowania zawierał pewną ochronę przed tego typu atakami, ale wraz z pojawieniem się wersji Chrome 76 ochrona ta uniemożliwiła działanie formularza, ponieważ Chrome wymaga teraz jeszcze wyższego poziomu bezpieczeństwa i innego mechanizmu. Spodziewamy się, że w przyszłości wymagania w tym zakresie będą się nadal zaostrzać.

Uważamy, że lepiej będzie zainwestować naszą i Państwa energię w inne funkcje, które są bardziej przydatne dla naszych czytelników.

Kod źródłowy

Tritius umożliwia umieszczenie formularza logowania na stronach zewnętrznych (np. stronach biblioteki):

 

 
<!-- Základní kostra formuláře -->
<form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz">
</form>
  
<!-- Import obslužného JS kódu -->
<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>
  
<!-- Inicializace Tritius pluginu -->
<script type="text/javascript">
    (function(window) {
        tritius.init();
    })(window);
</script>

 

  • ID formularza musi być „tritius-login-form”.
  • Atrybut data-tritius-url zawiera adres URL, pod którym działa katalog Tritia.
  • Wszystkie pola formularza są dodawane automatycznie (o ile nie zostały nadpisane, patrz poniżej).
  • W Tritiu należy ustawić domenę, na której dozwolony jest zewnętrzny formularz logowania (pozycja ustawień: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN).

Formularz zawiera kilka pól:

Nazwa pola (name)

Opis

Wartość
wdDefinicja internetowa

URL nazwa definicji strony internetowej, do której czytelnik będzie się logował.

Domyślnie puste

_csrfCSRF TokenJest dostarczany wraz ze skryptem obsługi.
usernameNazwa użytkownikaWprowadza użytkownik.
passwordHasłoWprowadza użytkownik.
submitPrzycisk wysyłania 

Przepisywanie pól formularza

Skrypt obsługowy przed dodaniem pola formularza zawsze sprawdza, czy pole o danej nazwie już nie istnieje. Jeśli tak, nie dodaje go i pozostawia zapisane w HTML.

<!-- Importowanie kodu obsługi JS -->

<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>

<!-- Podstawowa struktura formularza -->

<form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz">

    <input type="text" name="username" />

</form>

Opisy (tłumaczenia)

Wtyczka umożliwia definiowanie opisów dla poszczególnych pól:

<!-- Podstawowa struktura formularza -->

<form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz">

</form>

<!-- Importowanie kodu obsługi JS -->

<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>

<!-- Inicjalizacja wtyczki Tritius -->

<script type="text/javascript>

    (function(window) {

        tritius.messages.username = 'Nazwa użytkownika';

        tritius.messages.password = 'Hasło';

        tritius.messages.submit = 'Zaloguj się';

        tritius.init();

    })(window);

</script>

 

Ustawienia w Tritiu

Aby zabezpieczyć formularz metodą CORS przed atakami CSRF, w ustawieniach Tritia należy wypełnić pole EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN, w którym należy podać adresy URL, pod którymi znajduje się dozwolony formularz logowania.

Przykładowe ustawienia:

EXTERNAL_LOGIN_FORM_ALLOWED_ORIGINOpis
*Zezwala na formularze w dowolnym miejscu. Nie zalecamy stosowania tego ustawienia w środowisku produkcyjnym, ponieważ jest ono niebezpieczne.
https://domain1.comZezwoli na formularz na stronie https://domain1.com
https://katalog.knihovna.cz;https://tritius.knihovna.czZezwala na formularz na dwóch stronach z adresem URL https://katalog.knihovna.cz a https://tritius.knihovna.cz.