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

Show last authors
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 * ID formuláře musí být "**tritius-login-form**".
42 * Atribut **data-tritius-url** obsahuje URL, na které běží katalog Tritia.
43 * Všechny pole formuláře jsou přidána automaticky (pokud nejsou přepsána viz níže)
44 * Je nutné v Tritiu nastavit doménu, na které je externí přihlašovací formulář povolen (Položky nastavení: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN)
45
46 Formulář obsahuje několik polí:
47
48 |=(((
49 Název pole (name)
50 )))|=(((
51 Popis
52 )))|=(% colspan="1" %)(((
53 Hodnota
54 )))
55 |wd|Webová definice.|(% colspan="1" %)(((
56 URL název webové definice, do které se bude čtenář přihlašovat.
57
58 Defaultně prázdná
59 )))
60 |_csrf|CSRF Token|(% colspan="1" %)Je dodán obslužným skriptem.
61 |(% colspan="1" %)username|(% colspan="1" %)Uživatelské jméno|(% colspan="1" %)Zadává uživatel.
62 |(% colspan="1" %)password|(% colspan="1" %)Heslo.|(% colspan="1" %)Zadává uživatel.
63 |(% colspan="1" %)submit|(% colspan="1" %)Odesílací tlačítko.|(% colspan="1" %)
64
65 = Přepisování formulářových polí =
66
67 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.
68
69
70 |(((
71 <!~-~- Import obslužného JS kódu ~-~->
72
73 <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script>
74
75
76 <!~-~- Základní kostra formuláře ~-~->
77
78 <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]>
79
80 <input type="text" name="username" />
81
82 </form>
83 )))
84
85 = Popisky (překlady) =
86
87 Plugin umožňuje definovat popisky pro jednotlivá pole:
88
89
90
91 |(((
92 <!~-~- Základní kostra formuláře ~-~->
93
94 <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]>
95
96 </form>
97
98
99 <!~-~- Import obslužného JS kódu ~-~->
100
101 <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script>
102
103
104 <!~-~- Inicializace Tritius pluginu ~-~->
105
106 <script type="text/javascript>
107
108 (function(window) {
109
110 tritius.messages.username = 'Uživatelské jméno';
111
112 tritius.messages.password = 'Heslo';
113
114 tritius.messages.submit = 'Přihlásit';
115
116
117 tritius.init();
118
119 })(window);
120
121 </script>
122
123
124 )))
125
126 = Nastavení v Tritiu =
127
128 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ář.
129
130 Příklady nastavení:
131
132 |=EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN|=Popis
133 |*|Povolí formuláře kdekoli. Toto nastavení nedoporučujeme pro produkční prostředí, neboť je nebezpečné.
134 |(% colspan="1" %)[[https:~~/~~/domain1.com>>url:https://domain1.com/]]|(% colspan="1" %)Povolí formulář na stránce https:~/~/domain1.com
135 |(% 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.]]
136
137