Как получить базовую информацию для аутентификации в расширении Firefox?
-
10-07-2019 - |
Вопрос
Я кодирую расширение Firefox и хочу получить базовую информацию об аутентификации для веб-сайта (или для текущего документа).
Как я могу получить базовую информацию об аутентификации в расширении Firefox?
Решение
Я не смог найти точный ответ, и сейчас у меня нет времени экспериментировать, но, похоже, единственный способ - вручную просмотреть заголовки, используя Канал NsIHttpChannel.
Редактировать:Хорошо, я нашел nsIHttpAuthManager:
Эта служба предоставляет доступ к кэшированным учетным данным пользователя HTTP-аутентификации (домен, имя пользователя, пароль) для сайтов, посещенных во время текущего сеанса браузера.
Похоже, это именно то, что вам нужно.
Другие советы
Вот пример кода для использования nsIHttpAuthManager :
Создание компонента:
var proxyAuthenticationComponent = Components.classes["@mozilla.org/network/http-auth-manager;1"].getService(Components.interfaces.nsIHttpAuthManager);
Установите информацию.
proxyAuthenticationComponent.setAuthIdentity('http','192.168.0.1',80,"basic","Some Realm","","","username","password");
Получить информацию:
var domain = {}; //Will contain {value: ""}
var username = {}; //Will contain {value: "username"}
var password = {}; //Will contain {value: "password"}
proxyAuthenticationComponent.getAuthIdentity('http','192.168.0.1',80,"basic","Some Realm","",domain,username,password);
Я использовал это в расширении Thunderbird. Надеюсь, что это поможет.