如何在Firefox插件中使用oauthorizer

How to use oauthorizer in Firefox addon

本文关键字:oauthorizer 插件 Firefox      更新时间:2023-09-26

我试图在Firefox中使用oauth2,我从谷歌找到了这个模块:

https://github.com/mozilla/oauthorizer

然而,我不知道如何使用它。

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

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

却报错如下:

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

然后,我试了这个:

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

但是我得到了这个错误:

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

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

任何帮助都非常感谢!

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

  1. 使用npm安装授权器。在插件的根目录下,执行如下命令:

npm install oauthorizer --save

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

    我很确定这是不是最好的解决方案,但至少它工作。