При указании базовой аутентификации HTTP мы возвращаем что-то вроде:
WWW-Authenticate: Basic realm="myRealm"
Принимая во внимание, что Basic
является схемой, а остаток очень сильно зависит от этой схемы. В этом случае область просто предоставляет браузеру литерал, который может отображаться пользователю при запросе идентификатора пользователя и пароля.
Однако вы явно не используете Basic, поскольку нет смысла истекать сессию при использовании Basic Auth. Я предполагаю, что вы используете некоторую форму аутентификации на основе форм.
Исходя из воспоминаний, Windows Challenge Response использует другую схему и другие аргументы.
Хитрость в том, что браузер должен определить, какие схемы он поддерживает и как он на них реагирует.
Мне кажется, что если вы используете аутентификацию на основе форм, вы должны оставаться на странице 200+ relogin, но добавить собственный заголовок, который браузер будет игнорировать, но ваш AJAX может его идентифицировать.
Для действительно хорошего пользовательского опыта + AJAX, получите скрипт, который будет зависать от запроса AJAX, который обнаружил, что сеанс истек, запустить запрос на повторную регистрацию через всплывающее окно и при успешном завершении повторно отправить исходный запрос AJAX и продолжить как нормальный.
Избегайте читов, которые просто заставляют скрипт попадать на сайт каждые 5 минут, чтобы поддерживать сеанс в живых, потому что он просто побеждает точку истечения сеанса.
Другой вариант - записать запрос AJAX, но это плохо для пользователя.