Как работает «Выход везде» в PHP? - PullRequest
2 голосов
/ 21 февраля 2011

Я только что узнал, что в stackoverflow есть ссылка для выхода из системы всех зарегистрированных компьютеров.

Итак ... Я подумал о том, как реализовать такую ​​же функциональность в PHP.Я пришел с использованием session_set_save_haldner для управления методом write ().В методе write () я могу запустить файл сеанса с именем пользователя.Например, у пользователя john могут быть файлы сеансов john_kdkajdkak и john_29039dla.Когда Джон нажимает «Выйти из системы везде», я могу написать код, который находит имена файлов, начинающиеся с «john», а затем удаляет их, чтобы очистить сеансы.

Есть ли другие лучшие решения?Как вы это реализовали, если уже сделали это?

Ответы [ 2 ]

3 голосов
/ 21 февраля 2011

Использование базы данных для сохранения данных сеанса.

Используя session_set_save_handler, вы можете использовать свою собственную базу данных хранилища базы данных для пользовательских сессий - sessions с внешним ключом user_id, относящимся к таблице users. Кнопка «везде выйти» вызовет простой DELETE FROM sessions WHERE user_id = 1234 и сделает недействительным каждый сеанс для пользователя.

Вы также можете легко добавить дополнительные столбцы в таблицу session - например, для хранения IP-адреса сеанса, чтобы пользователи могли видеть, откуда были зарегистрированы другие сеансы.

Использование базы данных для гибкости и производительности.

0 голосов
/ 21 февраля 2011

Если у вас есть несколько сайтов в одном домене, как в StackExchange, то вы можете сделать это с помощью PHP.

Как уже указывал Билли, для этого лучше использовать хранилище базы данных.

В вашей ситуации я бы подумал об использовании CAS или аналогичного решения.

Но все сводится к тому, сколько разных сайтов у вас будет с одной учетной записью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...