Я хотел выйти из сеанса пользователя, зарегистрированного в другом браузере/среде, из текущего сеанса того же пользователя. Схожая функция - https://www.facebook.com/settings?tab=security§ion=sessions&view.Yii2 удаленный выход из сеанса пользователя с текущего сеанса пользователя
Yii2 - используемый бэкэнд-каркас. Использование redis для управления сессиями - yii2-redis. Я также сохраняю идентификаторы сеанса, сохраненные в базе данных.
Я последовал за эту статью - http://www.codeinphp.com/general/php-code-snippets/remotely-destroy-different-session-php-forced-user-signout/
Но не имел никакого успеха.
session_id($old_session_id);
session_start(); // This line throws error.
session_destroy();
Удаление ключа в Redis с помощью \Yii::$app->session->destroySession($oldSessionId)
не выход из системы.
Изменение идентификатора сеанса до старого, а затем уничтожение сеанса также не сработало.
$currentSessionId = \Yii::$app->session->getId();
\Yii::$app->session->setId($oldSessionId);
\Yii::$app->getSession()->destroy();
\Yii::$app->session->setId($currentSessionId);
Если кто-то успел успешно реализовать это решение, поделитесь своим решением. Также, если есть какая-либо документация, которая может помочь, пожалуйста, предоставьте.
Благодаря @ Нго VAN Тхао и @Nate для своих ответов. Это тот подход, который я последовал за вводом их ответов. Установите 'enableAutoLogin' значение false. Создайте таблицу 'session' (user_id, session_id) вместе с другими атрибутами, связанными с устройством, браузером. В методе 'afterLogin' добавьте user_id и session_id в таблицу' session'.Чтобы удаленно выйти из сеанса, уничтожьте сеанс с помощью -Yii :: $ app-> session-> destroySession (sessionId) и измените auth_key пользователя. Примечание. Это не работает для компонента Session по умолчанию. Прекрасно работает с 'yii \ redis \ Session' – Gowrav