Aplikacja z ograniczonym czasem sesji.

0

Wyobraźmy sobie aplikację webową dwuwartswową (tj Vue lub Angular na froncie - Java/C# na serwerze).
Apka ma nieco podniesione wymagania bezpieczeństwa, może nie tajemnice państwowe, ale informacje firmowe, niekiedy poufne.
Userami są pracownicy (pracujący na zmiany, o kiepskich nawykach komputerowych itd), zamyka się rzecz w firmie (sieci lokalnej - czyli intranet).

W innym wątku z Wami dyskutowałem, czy by login w oparciu o sms wyeliminował problem powszechnej znajomości haseł przez użytkowników

Teraz pytanie o długość sesji. Pasował by niedługi czas (10-15min) , przy braku aktywności logout i zabicie sesji.
Rodzi się sub-pytanie: co to jest aktywność, czy klikanie w Angularze, które nie skutkuje operacją serwerową - czy operacja serwer-side (jakiś request).
Ale jednocześnie wyjątek od zasad: jeśli jest otwarty jakiś grid, to co czas jakiś (kilku minut) sprawdza, czy dane się zmieniły - żeby takie akcje nie spełniały w/w definicji aktywności.

Jak się to robi, jak myśleć o zagadnieniu?

Aha, czy współczesna przeglądarka+frameworki może wykorzystać wiedzę o włączeniu screen-savera i posłusznie donieść o tym na komisa... na serwer?

3

Co do ostatniego pytania - też kiedyś z tym walczyłem i z tego, co udało mi się ustalić, to raczej nie ma takiej możliwości - https://stackoverflow.com/questions/33928680/how-to-detect-desktop-is-locked-in-javascript.

W temacie wykrywania aktywności/bezczynności - moim zdaniem nie ma co bazować na zapisach na serwerze, bo (jak słusznie zauważyłeś) ktoś może korzystać z apki w trybie biernym - np. przeglądając jakieś dane. Jest w ogóle fajna biblioteka do wykrywania bezczynności użytkownika w przeglądarce - https://github.com/shawnmclean/Idle.js.

Możesz też wprowadzić mechanizm podobny do tego, co stosuje wiele banków: Gdzieś na górze zamontować stoper, który odlicza czas do wylogowania. Każde kliknięcie (przejście na inną podstronę, wciśnięcie przycisku itp.) powoduje reset tego timera. Ponadto, jeśli ktoś będzie biernie przeglądać stronę (czyli bez klikania) to koło tego stopera jest przycisk "odświeź", który także powoduje reset odliczania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1