Zdrojový kód wiki Katalog - Externí přihlašovací formulář
Version 1.1 by Jan Šimeček on 2024/08/02 11:24
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | |((( | ||
| 2 | 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. | ||
| 3 | |||
| 4 | |||
| 5 | 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. | ||
| 6 | |||
| 7 | 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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| 12 | ))) | ||
| 13 | |||
| 14 | = Zdrojový kód = | ||
| 15 | |||
| 16 | Tritius umožňuje umístit na externí stránky (např. stránky knihovny) přihlašovací formulář: | ||
| 17 | |||
| 18 | |||
| 19 | |((( | ||
| 20 | |||
| 21 | |||
| 22 | | | ||
| 23 | |||
| 24 | {{{<!-- Základní kostra formuláře --> | ||
| 25 | <form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz"> | ||
| 26 | </form> | ||
| 27 | |||
| 28 | <!-- Import obslužného JS kódu --> | ||
| 29 | <script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script> | ||
| 30 | |||
| 31 | <!-- Inicializace Tritius pluginu --> | ||
| 32 | <script type="text/javascript"> | ||
| 33 | (function(window) { | ||
| 34 | tritius.init(); | ||
| 35 | })(window); | ||
| 36 | </script>}}} | ||
| 37 | |||
| 38 | |||
| 39 | ))) | ||
| 40 | |||
| 41 | |||
| 42 | * ID formuláře musí být "**tritius-login-form**". | ||
| 43 | * Atribut **data-tritius-url** obsahuje URL, na které běží katalog Tritia. | ||
| 44 | * Všechny pole formuláře jsou přidána automaticky (pokud nejsou přepsána viz níže) | ||
| 45 | * Je nutné v Tritiu nastavit doménu, na které je externí přihlašovací formulář povolen (Položky nastavení: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN) | ||
| 46 | |||
| 47 | |||
| 48 | Formulář obsahuje několik polí: | ||
| 49 | |||
| 50 | |=((( | ||
| 51 | Název pole (name) | ||
| 52 | )))|=((( | ||
| 53 | Popis | ||
| 54 | )))|=(% colspan="1" %)((( | ||
| 55 | Hodnota | ||
| 56 | ))) | ||
| 57 | |wd|Webová definice.|(% colspan="1" %)((( | ||
| 58 | URL název webové definice, do které se bude čtenář přihlašovat. | ||
| 59 | |||
| 60 | Defaultně prázdná | ||
| 61 | ))) | ||
| 62 | |_csrf|CSRF Token|(% colspan="1" %)Je dodán obslužným skriptem. | ||
| 63 | |(% colspan="1" %)username|(% colspan="1" %)Uživatelské jméno|(% colspan="1" %)Zadává uživatel. | ||
| 64 | |(% colspan="1" %)password|(% colspan="1" %)Heslo.|(% colspan="1" %)Zadává uživatel. | ||
| 65 | |(% colspan="1" %)submit|(% colspan="1" %)Odesílací tlačítko.|(% colspan="1" %) | ||
| 66 | |||
| 67 | = Přepisování formulářových polí = | ||
| 68 | |||
| 69 | 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. | ||
| 70 | |||
| 71 | |||
| 72 | |((( | ||
| 73 | <!~-~- Import obslužného JS kódu ~-~-> | ||
| 74 | |||
| 75 | <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script> | ||
| 76 | |||
| 77 | |||
| 78 | <!~-~- Základní kostra formuláře ~-~-> | ||
| 79 | |||
| 80 | <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]> | ||
| 81 | |||
| 82 | <input type="text" name="username" /> | ||
| 83 | |||
| 84 | </form> | ||
| 85 | ))) | ||
| 86 | |||
| 87 | |||
| 88 | = Popisky (překlady) = | ||
| 89 | |||
| 90 | Plugin umožňuje definovat popisky pro jednotlivá pole: | ||
| 91 | |||
| 92 | |||
| 93 | |||
| 94 | |((( | ||
| 95 | <!~-~- Základní kostra formuláře ~-~-> | ||
| 96 | |||
| 97 | <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]> | ||
| 98 | |||
| 99 | </form> | ||
| 100 | |||
| 101 | |||
| 102 | <!~-~- Import obslužného JS kódu ~-~-> | ||
| 103 | |||
| 104 | <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script> | ||
| 105 | |||
| 106 | |||
| 107 | <!~-~- Inicializace Tritius pluginu ~-~-> | ||
| 108 | |||
| 109 | <script type="text/javascript> | ||
| 110 | |||
| 111 | (function(window) { | ||
| 112 | |||
| 113 | tritius.messages.username = 'Uživatelské jméno'; | ||
| 114 | |||
| 115 | tritius.messages.password = 'Heslo'; | ||
| 116 | |||
| 117 | tritius.messages.submit = 'Přihlásit'; | ||
| 118 | |||
| 119 | |||
| 120 | tritius.init(); | ||
| 121 | |||
| 122 | })(window); | ||
| 123 | |||
| 124 | </script> | ||
| 125 | |||
| 126 | |||
| 127 | ))) | ||
| 128 | |||
| 129 | = Nastavení v Tritiu = | ||
| 130 | |||
| 131 | 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ář. | ||
| 132 | |||
| 133 | Příklady nastavení: | ||
| 134 | |||
| 135 | |=EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN|=Popis | ||
| 136 | |*|Povolí formuláře kdekoli. Toto nastavení nedoporučujeme pro produkční prostředí, neboť je nebezpečné. | ||
| 137 | |(% colspan="1" %)[[https:~~/~~/domain1.com>>url:https://domain1.com/]]|(% colspan="1" %)Povolí formulář na stránce https:~/~/domain1.com | ||
| 138 | |(% colspan="1" %)https:~/~/katalog.knihovna.cz;https:~/~/tritius.knihovna.cz|(% colspan="1" %)Povolí formulář na dvou stránkách s URL [[https:~~/~~/katalog.knihovna.cz>>url:https://katalog.knihovna.cz]] a [[https:~~/~~/tritius.knihovna.cz.>>url:https://tritius.knihovna.cz.]] | ||
| 139 | |||
| 140 | |||
| 141 |