Katalog - Externí přihlašovací formulář

Naposledy změněno Martin Mahr 2024/10/21 22:15

Funkce externího formuláře bude v některé z budoucích verzí Tritia odstraněna. Pokud jej používáte, zvažte prosím jeho odstranění při další aktualizaci vašich internetových stránek.

Důvodů proč jsme se rozhodli tuto funkci dlouhodobě nepodporovat je několik. Jednak tento způsob přihlašování už dnes není moderní a přihlašování se nahrazuje nejrůznějšími přihlašovacími tlačítky (Facebook, Google, Twitter, mojeID apod.) a jednak to představuje bezpečností riziko.

Všimněte si, že přihlašovací tlačítka vás přesměrují (nebo zobrazí okno) na stránky poskytovatele přihlášení (např. mojeID) a po přihlášení vás přesměrují zpět. Nikdo nenabízí možnost umístit na stránky přímo přihlašovací formulář a i Tritius pro přihlášení pomocí mojeID zobrazuje přihlašovací tlačítko.

Přihlašovací formulář zpravidla vyžaduje zasílání dat mezi dvěma doménami (web knihovny → tritius), což může být náchylné na tzv. CSRF útoky. Náš přihlašovací formulář obsahoval jistou ochranu proti tomuto typu útoků, ale s příchodem Chrome verze 76 tato ochrana znemožnila fungování formuláře neboť Chrome nyní vyžaduje ještě vyšší úroveň zabezpečení a jiný mechanismus. Očekáváme, že v budoucnu se bude v této oblasti dále zpřísňovat.

Jsme toho názoru, že bude lepší investovat naši a vaši energii do jiných funkcí, které mají pro naše čtenáře větší užitek.

Zdrojový kód

Tritius umožňuje umístit na externí stránky (např. stránky knihovny) přihlašovací formulář:

 

 
<!-- 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 formuláře musí být "tritius-login-form".
  • Atribut data-tritius-url obsahuje URL, na které běží katalog Tritia.
  • Všechny pole formuláře jsou přidána automaticky (pokud nejsou přepsána viz níže)
  • Je nutné v Tritiu nastavit doménu, na které je externí přihlašovací formulář povolen (Položky nastavení: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN)

Formulář obsahuje několik polí:

Název pole (name)

Popis

Hodnota

wdWebová definice.

URL název webové definice, do které se bude čtenář přihlašovat.

Defaultně prázdná

_csrfCSRF TokenJe dodán obslužným skriptem.
usernameUživatelské jménoZadává uživatel.
passwordHeslo.Zadává uživatel.
submitOdesílací tlačítko. 

Přepisování formulářových polí

Obslužný skript se vždy před přidáním formulářového pole podívá, zda-li pole daného jména již neexistuje. Pokud ano, pak jej nepřidá a ponechá to zapsané v HTML.

<!-- Import obslužného JS kódu -->

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

<!-- Základní kostra formuláře -->

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

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

</form>

Popisky (překlady)

Plugin umožňuje definovat popisky pro jednotlivá pole:

<!-- 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.messages.username = 'Uživatelské jméno';

        tritius.messages.password = 'Heslo';

        tritius.messages.submit = 'Přihlásit';

        tritius.init();

    })(window);

</script>

 

Nastavení v Tritiu

Kvůli zabezpečení formuláře metorou CORS pro CSRF útokům je nutné v položkách nastavení Tritia vyplnit položku EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN, kam se zadávají URL adresy, na kterých je umístěn povolený přihlašovací formulář.

Příklady nastavení:

EXTERNAL_LOGIN_FORM_ALLOWED_ORIGINPopis
*Povolí formuláře kdekoli. Toto nastavení nedoporučujeme pro produkční prostředí, neboť je nebezpečné.
https://domain1.comPovolí formulář na stránce https://domain1.com
https://katalog.knihovna.cz;https://tritius.knihovna.czPovolí formulář na dvou stránkách s URL https://katalog.knihovna.cz a https://tritius.knihovna.cz.