Desidero disconnettere una sessione utente connessa a un altro browser/ambiente dalla sessione corrente dello stesso utente. Una funzionalità simile a questa - https://www.facebook.com/settings?tab=security§ion=sessions&view.Disconnessione remota Yii2 una sessione utente dalla sessione corrente dell'utente
Yii2 è il framework di back-end utilizzato. Utilizzo di redis per la gestione delle sessioni - yii2-redis. Ho anche salvato gli ID di sessione salvati nel database.
Ho seguito questo articolo - http://www.codeinphp.com/general/php-code-snippets/remotely-destroy-different-session-php-forced-user-signout/
ma non ha avuto alcun successo.
session_id($old_session_id);
session_start(); // This line throws error.
session_destroy();
L'eliminazione della chiave in Redis utilizzando \Yii::$app->session->destroySession($oldSessionId)
non è stato chiuso.
Cambiare l'id di sessione su quello precedente e quindi distruggere la sessione non ha funzionato.
$currentSessionId = \Yii::$app->session->getId();
\Yii::$app->session->setId($oldSessionId);
\Yii::$app->getSession()->destroy();
\Yii::$app->session->setId($currentSessionId);
Se qualcuno ha avuto successo nell'implementazione con successo, si prega di condividere la soluzione. Inoltre, se c'è qualche documentazione in merito a ciò che può aiutare, si prega di fornire.
Grazie a @ Ngô Văn Thao e @Nate per le loro risposte. Questo è l'approccio che ho seguito prendendo gli input dalle loro risposte. Impostare 'enableAutoLogin' su false. Crea una tabella 'session' (user_id, session_id) insieme ad altri attributi relativi al dispositivo, browser. Nel metodo 'afterLogin', aggiungi user_id e session_id alla tabella' session'.Per disconnettere una sessione in remoto, distruggere la sessione usando -Yii :: $ app-> session-> destroySession (sessionId) e modificare il auth_key dell'utente. Nota: questo non ha funzionato per il componente Session predefinito. Funziona bene con 'yii \ redis \ Session' – Gowrav