Ukončení uživatelské session (nucené odhlášení administrátorem)
- VojtaSim
- Člen | 55
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
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
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
Přesně vím o čem mluvíš, kvůli tomu jsem to taky vymejšlel (viz téma kde se to řešilo).