poniedziałek, 1 stycznia 2024

STM32H7 - Automaczyczne wylogowanie ze strony HTTP

 W tym krótkim poście chciałbym pokazać w jaki sposób można wykonać automatyczne wylogowanie ze strony internetowej na urządzeniu. 

Kod został napisany w JavaScript. Skrypt jest wykorzystywany do sprawdzania braku aktywności użytkownika na stronie. Jak czas już minie to następuje przekierowanie do strony logowania, w celu ponownego wprowadzenia danych. 

  1. let lastActivityTime = Date.now();
  2.  
  3. document.addEventListener("mousemove", () => {
  4.     lastActivityTime = Date.now();
  5. });
  6. document.addEventListener("keydown", () => {
  7.     lastActivityTime = Date.now();
  8. });
  9.  
  10. function checkInactivity() {
  11.     const inactivityTimeout = 60 * 1000;
  12.  
  13.     if (Date.now() - lastActivityTime > inactivityTimeout) {
  14.         window.location.href = "cgilogin.html";
  15.     }
  16. }
  17.  
  18. setInterval(checkInactivity, 30 * 1000);

Zmienna lastActivityTime przechowuje czas ostatniej aktywności. Zmienna aktualizowana jest w zdarzeniach odczytujących ruch myszy, lub naciśnięcie przycisku. Aktualizacja czasu pozwala na weryfikację, jak długo użytkownik nie wykonał żadnej aktywności.

W funkcji checkInactivity sprawdzany jest czy czas nieaktywności, w tym przypadku ustawiony na 60 sekund w milisekundach, został przekroczony. Jeśli tak to następuje przekierowanie do strony logowania.

Na samym końcu ustawiony jest interwał, co jaki czas następuje sprawdzenie przekroczenia czasu nieaktywności. Tutaj wynosi on 30 sekund. Nie ma sensu zbyt często weryfikować tego czasu. Myślę, że rozsądnie będzie ustawić ten czas w przedziale od 60 sekund do 15 sekund, dla częstszej weryfikacji. Wszystko zależy, jak szybko po przekroczeniu czasu chcemy wylogować użytkownika. 

Cały kod wprowadzamy do sekcji scrip:

  1. <script>
  2. //...
  3. //...
  4. //...
  5. </script>

Kod nie wymaga, żadnej dodatkowej ingerencji, ze strony mikrokontrolera. Przez co dosyć łatwo można go zaimplementować.