如何授权用户(登录我的网站)使用我的firefox插件

时间:2011-05-14 11:20:24

标签: authentication cookies firefox-addon cross-domain greasemonkey

我使用arantius.com/misc/greasemonkey/script-compiler中的Greasemonkey脚本编译器创建了一个Firefox插件。插件从我的服务器获取数据并将其显示在第三方网站上。现在,我想仅限制对经过身份验证的用户的访问。这样做的最佳方式是什么?

用户在我的网站上有一个帐户(使用Drupal 7制作),它在登录时设置会话cookie。所以我试着让我的插件读取session-cookie,发送到后端,然后检查登录状态。

但由于我的插件的javascript运行在第三方网站的范围内,因此不允许访问我的cookie。我收到这个错误:

  

错误:< http://de.wikipedia.org> wurde   ErlaubnisfürdasLesen der   Eigenschaft XPCComponents.classes   verweigert。

     

(en:“错误:维基百科   不允许阅读该物业   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);
}

我现在知道跨域cookie不可能。但是我怎么能解决这个问题呢?其他插件如何进行身份验证(例如Delicious Bookmarks,StumbleUpon等等)。

非常感谢任何提示或指示。

1 个答案:

答案 0 :(得分:2)

使用GM_xmlhttpRequest在您的网站上请求登录状态?

作为替代方案,您还可以使用GM_setValue / GM_getValue来存储登录状态。