Version 1.1 by Jan Šimeček on 2024/08/02 11:24

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
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