Как авторизовать пользователей (зашедших на мой сайт) для использования моего аддона Firefox? - PullRequest
3 голосов
/ 14 мая 2011

Я сделал дополнение к Firefox, используя компилятор скриптов Greasemonkey по адресу arantius.com/misc/greasemonkey/script-compiler.Аддон получает данные с моего сервера и отображает их на сторонних сайтах.Теперь я хочу ограничить доступ только для аутентифицированных пользователей.Каков наилучший способ сделать это?

У пользователей есть учетная запись на моем веб-сайте (сделанная с Drupal 7), которая устанавливает cookie-файл сессии при входе в систему.Поэтому я попытался заставить свое дополнение прочитать файл cookie сеанса, отправить его бэкэнду, который затем проверяет состояние входа в систему.

Но так как javascript моего дополнения работает в рамках стороннего веб-сайта,мне не разрешен доступ к моему cookie.Я получаю эту ошибку:

Ошибка: <<a href="http://de.wikipedia.org" rel="nofollow">http://de.wikipedia.org> wurde die Erlaubnis für das Lesen der Eigenschaft XPCComponents.classes verweigert.

(ru: "Ошибка: Википедия былане разрешено читать свойство XPCComponents.classes ")

Несмотря на проблемы безопасности, я пытался использовать unsafeWindow, но код все равно не работает:

try {
    unsafeWindow.netscape.security.PrivilegeManager
    .enablePrivilege('UniversalXPConnect');
    var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
    .getService(Components.interfaces.nsICookieManager);
}
catch (errorInfo)
{
    alert(errorInfo);
}

Теперь я знаю, что кросс-доменпеченье не должно быть возможным.Но как я могу обойти это?Как другие надстройки выполняют аутентификацию (например, Delicious Bookmarks, StumbleUpon и многие другие).

Будем очень благодарны за любые подсказки или указатели.

1 Ответ

2 голосов
/ 14 мая 2011

Используйте GM_xmlhttpRequest , чтобы запросить состояние входа на ваш сайт?

В качестве альтернативы вы также можете использовать GM_setValue / GM_getValue для хранения статуса входа.

...