Ukončení uživatelské session (nucené odhlášení administrátorem)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
VojtaSim
Člen | 55
+
0
-

Dobrý den,
snažím se přijít na to jak odhlásit (nuceně) trvale přihlášeného uživatele $this->user->setExpiration('+30 days', FALSE);
Našel jsem návod, který to tak dělá smazáním session souboru. Ten ale počítá se session_id() nastaveným podle ‚id‘ uživatele a následným smazáním opět podle ‚id‘ uživatele.

$current_user; // current user name
ini_set('session.save_handler', 'files');
$current_user = md5($current_user);
session_id($current_user);
session_save_path("/tmp/sessions/");
session_start();

// log out
$current_user = md5($curent_user);
unlink("/tmp/sessions/$current_user");

Do budoucna má aplikace běžet na load-balanced serverech, takže bych i zvažoval ukládání sessions do DB pomocí implementace ISessionStorage, kde ovšem nastává stejný problém: Jak smazat jen konkrétní session daného uřivatele?

enumag
Člen | 2118
+
0
-

Používám vlastní UserStorage které kontroluje zda se nějak změnila identita uživatele. Pokud ano je odhlášen. Je to ověřované pomocí hashe, jehož změnu si ale musíš hlídat v aplikaci sám.

VojtaSim
Člen | 55
+
0
-

Díky moc, hodně chytré řešení a ještě mi to vyřešilo neustále dotazování na práva uživatele (skupiny ve které je) http://i.imgur.com/4Brwzhz.png abych zalepil bezpečnostní díru.

enumag
Člen | 2118
+
0
-

Přesně vím o čem mluvíš, kvůli tomu jsem to taky vymejšlel (viz téma kde se to řešilo).