Katalog - Externí přihlašovací formulář
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 |
---|---|---|
wd | Webová definice. | URL název webové definice, do které se bude čtenář přihlašovat. Defaultně prázdná |
_csrf | CSRF Token | Je dodán obslužným skriptem. |
username | Uživatelské jméno | Zadává uživatel. |
password | Heslo. | Zadává uživatel. |
submit | Odesí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_ORIGIN | Popis |
---|---|
* | Povolí formuláře kdekoli. Toto nastavení nedoporučujeme pro produkční prostředí, neboť je nebezpečné. |
https://domain1.com | Povolí formulář na stránce https://domain1.com |
https://katalog.knihovna.cz;https://tritius.knihovna.cz | Povolí formulář na dvou stránkách s URL https://katalog.knihovna.cz a https://tritius.knihovna.cz. |