W pewnym sensie wykonuję to samo zadanie, gdy chcę, aby użytkownik miał tylko jedną sesję. To może być tylko on, który korzysta z konta, a nie wiele innych osób.
Sposób, w jaki to zaprojektowałem, polega na tym, że mam jeden stół, w którym przechowuję początek i koniec sesji. Służy to użytkownikowi do sprawdzenia, jak długo trwała ostatnia wizyta i kiedy był ostatni w Internecie.
Następnie zaprojektowałem tabelę sesji, w której aktualizuję datę/godzinę za każdym razem, gdy użytkownik coś robi. Jeśli czas tutaj jest starszy niż 30-60 minut (jeszcze nie ustalono zakresu), wartość sesji zostanie usunięta. Dzięki temu użytkownik może zalogować się ponownie później, jeśli zdecyduje się to zrobić. Ale nie w przedziale czasowym 30-60.
Tabela sesji będzie śledzona przez zadanie cron.
Chce się upewnić, że użytkownik jest zalogowany z nie więcej niż jednego komputera, tj. Unieważnić inne sesje, gdy użytkownik ma nową sesję. @ Karem, popraw mnie, jeśli źle cię zrozumiem. – aularon
Jeśli ktoś zapomni się wylogować, może zostać zablokowany na stałe. A jeśli nie śledzisz czasu ostatniego dostępu, zadanie crona wylogowałoby użytkowników, którzy nadal byli aktywni. – cHao
cHao tylko to, co myślałem .. i nie chcę tego .. – Karem