如何在Firefox插件中使用oauthorizer

时间:2015-08-23 01:54:16

标签: javascript oauth-2.0 firefox-addon

我正在尝试在Firefox中使用oauth2,我在Google上找到了这个模块:

https://github.com/mozilla/oauthorizer

但是,我不确定如何使用它。

我根据项目的README尝试了以下内容,

Components.utils.import("resource://oauthorizer/modules/oauthconsumer.js");

然而,它报告了以下错误:

  

"`组件`在此上下文中不可用。组件提供的功能可能在SDK模块中可用:https://developer.mozilla.org/en-US/Add-ons/SDK但是,如果您仍需要导入组件,则可以使用`chrome`模块的组件属性快捷方式的属性:快捷方式:Cc = Components.classes Ci = Components.interfaces Cu = Components.utils CC = Components.Constructor示例:let {Cc,Ci} = require(' chrome& #39;);"

然后,我尝试了这个:

let {Cu} = require("chrome");
Cu.import("resource://oauthorizer/modules/oauthconsumer.js");

但是我得到了这个错误:

  

"组件返回失败代码:0x80040111(NS_ERROR_NOT_AVAILABLE)   [nsIXPCComponents_Utils.import]"

可能我需要在package.json中设置一些东西?或者有一些特殊的机制来导入外部模块?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

最后,这就是我所做的:(请注意我使用jpm进行插件开发)

  1. 使用npm安装oauthorizer。在addon的根文件夹中,运行以下命令:
  2. npm install oauthorizer --save

    1. 在插件脚本(index.js)中添加以下内容:
    2. var OAuthConsumer = require("oauthorizer/lib/oauthconsumer.js").OAuthConsumer;
      
      1. 稍微修改oauthconsumer.js以更新路径:
      2. e.g。将require("sha1")替换为require("./sha1")

        我很确定它是最佳解决方案,但至少它可行。