Jednoduchý návod ako vytvoriť vlastný session middleware pre Total.js webové aplikácie. Majte všetky relácie pod kontrolou.
Vytvorenie session middleware v Total.js za 5 minút
Vytvoríme jednoduchý middleware
Nižšie uvedený kód môžete uložiť napr. do súboru your-app/definitions/session.js
:
- konštanta
SESSION
obsahuje všetky aktívne relácie - konštanta
TIMEOUT
obsahuje čas, za koľko expiruje relácia - konštanta
COOKIE
obsahuje názov precookie
Čo sa vlastne robí tento middleware?
- príde request do middleware
- skontrolujeme, či existuje
cookie
s identifikátorom relácie v requeste - ak existuje, tak následne urobíme malú kontrolu voči ukradnutiu session (len IP kontrola)
- ak neexistuje (alebo je podozrenie, že bola ukradnutá), tak vytvoríme nový identifikátor
- v kroku
var session = SESSION[cookie]
vraciame existujúcu session - ďalej robíme kontrolu či session už existuje v pamäti (RAM) alebo nie
- následne ukončujeme middleware a framework pokračuje vo vyhodnotení trasy (routing)
Pod deklaráciou middleware je definovaná udalosť F.on('service', ....)
. Túto udalosť volá framework každú minutú a prostredníctom argumentu counter
vo funkcii v udalosti môžeme zistiť, koľké volanie udalosti práve nastáva. My vždy každú druhú minútu vymažeme relácie, ktoré sa už nepoužívajú (sú to všetky relácie, ktoré majú dobu nečinnosti väčšiu ako hodnota v konštante TIMEOUT
).
Použitie
Teraz nám už neostáva nič iné, ako použiť vytvorený middleware. Takže je potrebné vytvoriť/upraviť nejaký controller, napr. /your-app/controllers/default.js
:
Čo sa vlastne robí vo vyššie uvedenom kóde?
- vytvoríme trasu na úvodnú stránku
F.route('/', action, [flags])
- trasa obsahuje
session
middleware, ktorý sme vytvorili - následne v akcii môžeme použiť objekt
controller.session
Po príchode request
na úvodnú stránku sa vyvolá najprv middleware
session a následne sa volá akcia v trase. Middleware nemusíme definovať do trasy, ale môžeme ho nastaviť pre všetky trasy pomocou funkcie F.use()
- viac v dokumentácii.
Rozšírenie middleware o napr. udalosti
Teraz je už veľmi jednoduché rozšíriť funkčnosť middleware o hocičo. Nižšie uvedený kód rozširujem o udalosti, takže jednoducho budeme vedieť zachytiť, keď sa bude vytvárať nová session a keď session expiruje.
Použitie:
Nižšie uvedený kód môžete použiť v každom .js
súbore na server-side v Total.js.
Other posts from Peter Širka
- 2024-10-30JavaScript na serveri rýchlo a jednoducho so slovenským Total.js frameworkom
- 2024-02-18Ako lietať s long range dronom?
- 2024-02-09Recenzia drona DJI FPV
- 2024-02-07Recenzia drona DJI Avata
- 2023-01-06Ako spustiť Total.js framework?
- 2023-01-03Inštalácia Node.js + vysvetlenie použitia modulov
- 2022-05-26Základné informácie o Total.js Platforme
- 2021-01-15Je tu Total.js 4 - jeden z najlepších Node.js frameworkov
- 2020-02-12Total Avengers
- 2019-09-18JavaScript core pre Pie a Donut SVG grafy