Я нашел разумное решение. Это немного запутанно, но работает очень хорошо. Я создал таблицу с полем GUID. Это не началось с каких-либо записей. Вот решение:
- Пользователь нажимает кнопку «Выйти».
- Сценарий выхода добавляет GUID для новой таблицы.
- Сценарий выхода из системы перенаправляет пользователя на URL-адрес, для которого в качестве параметра указан GUID.
- Когда пользователь нажимает URL с GUID в качестве параметра, система ищет GUID в таблице.
- Если GUID находится в таблице, удалите запись с GUID и введите недопустимый код ответа с именем пользователя / паролем (даже если учетные данные в порядке).
- Если GUID отсутствует в таблице, проверьте учетные данные.
Эта новая таблица может быстро раздуться хакерами, поэтому убедитесь, что у каждого пользователя может быть только одна запись в таблице. Вы также можете использовать временные метки и выполнять пакетное задание, чтобы время от времени сокращать таблицу.