XMLHttpRequest, базовая аутентификация и истекающий пароль - PullRequest
0 голосов
/ 21 июля 2009

Я использую XMLHttpRequest и basic-auth для доступа к интерфейсу приложения. Пароль является временным и генерируется другим запросом, поэтому срок его действия истекает через некоторое время.

Но браузер (по крайней мере, в Firefox) продолжает использовать старый, отказывая и показывая всплывающее окно входа в систему. Если я подавляю всплывающее окно, возвращая 403 для запросов с X-Requested-By и неправильным паролем, mozilla никогда не пытается использовать новый пароль (firebug показывает новый пароль в запросе, сервер получает старый).

Проблему можно обойти, добавив случайное «соль» к имени пользователя (и удалив его на стороне сервера), но есть ли лучший способ заставить XMLHttpRequest использовать предоставленный пароль вместо кэшированного?

1 Ответ

0 голосов
/ 21 июля 2009

401 ответов включают в себя «домен аутентификации», который по умолчанию содержит все URL-адреса на сервере (см. RFC 2617 ). Ожидается, что браузер предоставит те же учетные данные для любого вызова из того же домена.

Поскольку вы уже генерируете истекающий пароль, почему бы просто не превратить его в токен, который должен добавляться к каждому запросу? Например, SHA1-хэш имени пользователя, возможно, с временной меткой. Я предполагаю, что вы будете использовать это в качестве ключа на сервере для получения данных пользователя.

...