Tôi muốn đăng xuất một phiên người dùng đã đăng nhập vào một trình duyệt/môi trường khác từ phiên hiện tại của cùng một người dùng. Một tính năng tương tự như thế này - https://www.facebook.com/settings?tab=security§ion=sessions&view.Yii2 từ xa đăng xuất một phiên người dùng từ phiên hiện tại của người dùng
Yii2 là khung công tác phụ trợ được sử dụng. Sử dụng redis để quản lý phiên - yii2-redis. Tôi cũng lưu các id phiên được lưu trong cơ sở dữ liệu.
Tôi đi theo bài viết này - http://www.codeinphp.com/general/php-code-snippets/remotely-destroy-different-session-php-forced-user-signout/
Nhưng không có bất kỳ thành công.
session_id($old_session_id);
session_start(); // This line throws error.
session_destroy();
Xóa khóa bằng màu đỏ bằng cách sử dụng \Yii::$app->session->destroySession($oldSessionId)
không đăng xuất.
Thay đổi id phiên thành cũ và sau đó hủy phiên cũng không hoạt động.
$currentSessionId = \Yii::$app->session->getId();
\Yii::$app->session->setId($oldSessionId);
\Yii::$app->getSession()->destroy();
\Yii::$app->session->setId($currentSessionId);
Nếu có ai thành công trong việc triển khai thành công, vui lòng chia sẻ giải pháp của bạn. Ngoài ra nếu có bất kỳ tài liệu nào liên quan đến việc này có thể giúp đỡ, vui lòng cung cấp.
Nhờ @ Ngô Văn Thảo và @Nate cho câu trả lời của họ. Đây là cách tiếp cận mà tôi theo sau khi lấy đầu vào từ câu trả lời của họ. Đặt 'enableAutoLogin' thành false. Tạo bảng 'phiên' (user_id, session_id) cùng với các thuộc tính khác liên quan đến thiết bị, trình duyệt. Trong phương thức 'afterLogin', thêm user_id và session_id vào bảng 'session'.Để đăng xuất một phiên từ xa, hãy hủy phiên sử dụng -Yii :: $ app-> session-> destroySession (sessionId) và thay đổi auth_key của người dùng. Lưu ý: Điều này không hoạt động đối với thành phần Phiên mặc định. Hoạt động tốt với 'yii \ redis \ Session' – Gowrav