Ostatnio modyfikowane 2025/11/07 13:41 przez Jan Slezák

Pokaż ostatnich autorów
1 |(((
2 Funkcja zewnętrznego formularza zostanie usunięta w jednej z przyszłych wersji Tritia. Jeśli z niej korzystasz, rozważ jej usunięcie podczas kolejnej aktualizacji swojej strony internetowej.
3
4 Istnieje kilka powodów, dla których zdecydowaliśmy się nie wspierać tej funkcji w dłuższej perspektywie. Po pierwsze, ten sposób logowania nie jest już nowoczesny i jest zastępowany różnymi przyciskami logowania (Facebook, Google, Twitter, mojeID itp.), a po drugie stanowi zagrożenie dla bezpieczeństwa.
5
6 Należy pamiętać, że przyciski logowania przekierowują (lub wyświetlają okno) na stronę dostawcy logowania (np. mojeID), a po zalogowaniu przekierowują z powrotem. Nikt nie oferuje możliwości umieszczenia formularza logowania bezpośrednio na stronie, a nawet Tritius do logowania za pomocą mojeID wyświetla przycisk logowania.
7
8 Formularz logowania zazwyczaj wymaga przesyłania danych między dwiema domenami (strona biblioteki → tritius), co może być podatne na tzw. ataki CSRF. Nasz formularz logowania zawierał pewną ochronę przed tego typu atakami, ale wraz z pojawieniem się wersji Chrome 76 ochrona ta uniemożliwiła działanie formularza, ponieważ Chrome wymaga teraz jeszcze wyższego poziomu bezpieczeństwa i innego mechanizmu. Spodziewamy się, że w przyszłości wymagania w tym zakresie będą się nadal zaostrzać.
9
10 Uważamy, że lepiej będzie zainwestować naszą i Państwa energię w inne funkcje, które są bardziej przydatne dla naszych czytelników.
11 )))
12
13 = Kod źródłowy =
14
15 Tritius umożliwia umieszczenie formularza logowania na stronach zewnętrznych (np. stronach biblioteki):
16
17
18 |(((
19
20
21 |
22
23 {{{<!-- Základní kostra formuláře -->
24 <form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz">
25 </form>
26   
27 <!-- Import obslužného JS kódu -->
28 <script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>
29   
30 <!-- Inicializace Tritius pluginu -->
31 <script type="text/javascript">
32     (function(window) {
33         tritius.init();
34     })(window);
35 </script>}}}
36
37
38 )))
39
40 * ID formularza musi być „**tritius-login-form**”.
41 * Atrybut **data-tritius-url** zawiera adres URL, pod którym działa katalog Tritia.
42 * Wszystkie pola formularza są dodawane automatycznie (o ile nie zostały nadpisane, patrz poniżej).
43 * W Tritiu należy ustawić domenę, na której dozwolony jest zewnętrzny formularz logowania (pozycja ustawień: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN).
44
45 Formularz zawiera kilka pól:
46
47 |=(((
48 Nazwa pola (name)
49 )))|=(((
50 Opis
51 )))|=(% colspan="1" %)Wartość
52 |wd|Definicja internetowa|(% colspan="1" %)(((
53 URL nazwa definicji strony internetowej, do której czytelnik będzie się logował.
54
55 Domyślnie puste
56 )))
57 |_csrf|CSRF Token|(% colspan="1" %)Jest dostarczany wraz ze skryptem obsługi.
58 |(% colspan="1" %)username|(% colspan="1" %)Nazwa użytkownika|(% colspan="1" %)Wprowadza użytkownik.
59 |(% colspan="1" %)password|(% colspan="1" %)Hasło|(% colspan="1" %)Wprowadza użytkownik.
60 |(% colspan="1" %)submit|(% colspan="1" %)Przycisk wysyłania|(% colspan="1" %)
61
62 = Przepisywanie pól formularza =
63
64 Skrypt obsługowy przed dodaniem pola formularza zawsze sprawdza, czy pole o danej nazwie już nie istnieje. Jeśli tak, nie dodaje go i pozostawia zapisane w HTML.
65
66 |(((
67 <!~-~- Importowanie kodu obsługi JS ~-~->
68
69 <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script>
70
71
72 <!~-~- Podstawowa struktura formularza ~-~->
73
74 <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]>
75
76 <input type="text" name="username" />
77
78 </form>
79 )))
80
81 = Opisy (tłumaczenia) =
82
83 Wtyczka umożliwia definiowanie opisów dla poszczególnych pól:
84
85
86
87 |(((
88 <!~-~- Podstawowa struktura formularza ~-~->
89
90 <form id="tritius-login-form" data-tritius-url="[[https:~~/~~/tritius.knihovna.cz">>url:https://tritius.knihovna.cz/]]>
91
92 </form>
93
94
95 <!~-~- Importowanie kodu obsługi JS ~-~->
96
97 <script type="text/javascript" src="[[https:~~/~~/tritius.knihovna.cz/js/tritius.js">>url:https://tritius.knihovna.cz/js/tritius.js]]></script>
98
99
100 <!~-~- Inicjalizacja wtyczki Tritius ~-~->
101
102 <script type="text/javascript>
103
104 (function(window) {
105
106 tritius.messages.username = 'Nazwa użytkownika';
107
108 tritius.messages.password = 'Hasło';
109
110 tritius.messages.submit = 'Zaloguj się';
111
112
113 tritius.init();
114
115 })(window);
116
117 </script>
118
119
120 )))
121
122 = Ustawienia w Tritiu =
123
124 Aby zabezpieczyć formularz metodą CORS przed atakami CSRF, w ustawieniach Tritia należy wypełnić pole EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN, w którym należy podać adresy URL, pod którymi znajduje się dozwolony formularz logowania.
125
126 Przykładowe ustawienia:
127
128 |=EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN|=Opis
129 |*|Zezwala na formularze w dowolnym miejscu. Nie zalecamy stosowania tego ustawienia w środowisku produkcyjnym, ponieważ jest ono niebezpieczne.
130 |(% colspan="1" %)[[https:~~/~~/domain1.com>>url:https://domain1.com/]]|(% colspan="1" %)Zezwoli na formularz na stronie https:~/~/domain1.com
131 |(% colspan="1" %)https:~/~/katalog.knihovna.cz;https:~/~/tritius.knihovna.cz|(% colspan="1" %)Zezwala na formularz na dwóch stronach z adresem URL [[https:~~/~~/katalog.knihovna.cz>>url:https://katalog.knihovna.cz]] a [[https:~~/~~/tritius.knihovna.cz.>>url:https://tritius.knihovna.cz.]]
132
133