Я знаю два способа, которыми можно сделать это в коде Firefox XUL (но не в веб-коде), один из которых, как я знаю, не применим к Google Chrome, и быстрый тест показывает, что другой тоже не подходит.
Три варианта происходят со мной.
- Иметь страницу проверки пароля на доступном сервере (в идеале, тот же), который при запросе (конечно же, через безопасное соединение) отвечает с указанием правильности комбинации пользователь / пароль. Если вы не те люди, которые связаны с сервером, на котором запущен этот сервис, я бы огорчился, если вы сделаете это, хотя тысячи позволяют Facebook и соавт. делай такие вещи постоянно! С другой стороны, достаточно сложно убедить людей не быть такими глупыми, чтобы позволить Facebook и соавт. делайте это все время, чтобы другой человек, делающий то же самое, не помог бы.
- Не спрашивайте своих пользователей о своих паролях, тогда встроенная подсказка будет использоваться в каждом случае и будет «обычным» пользователем / паролем. Лично я бы почувствовал себя счастливее от идеи, что вы делаете даже Basic, так как это по зашифрованному каналу, чем то, что выглядело бы как аутентификация форм (не так хорошо, как я бы с Digest или другой моделью с паролем, скрываемым в реальной протокол), поскольку, несмотря на то, что оба могут делать некоторые странные и глупые вещи с отправленными паролями, опыт показывает, что формы, скорее всего, будут созданы кем-то, идущим "конечно, я могу кодировать безопасно, о чем думать?" чем любая другая схема.
- Если это ваш собственный сервер, вы можете ответить на неверный пароль чем-то отличным от 401 и использовать его в качестве сигнала в сценарии для повторного запроса. Для этого было бы лучше иметь специальный URI для входа в систему, чтобы не допускать, чтобы этот ключ для XMLHttpRequest мешал клиентам с лучшим поведением.