【问题标题】:How can I authenticate with google inside of a firefox plugin如何在 Firefox 插件中使用 google 进行身份验证
【发布时间】:2014-10-08 18:27:03
【问题描述】:

我想将我的 Firefox 插件中的日历条目添加到用户的 Google 日历中(当然要经过他们的授权)。不幸的是,我似乎无法弄清楚如何在 Firefox SDK 的上下文中使用 Gapi 进行身份验证。

我尝试将来自 gapi 的 client.js 直接作为模块包含在我的源代码中,但这并不有效,因为它无法访问 window 对象。我的下一次尝试类似于我对 jQuery 所做的事情 - 将其加载到内容脚本中:

googleClient.js

var tabs = require("sdk/tabs");
var self = require('sdk/self');

function initAuth() {
  var worker = tabs.activeTab.attach({
    url: 'about:blank',
    contentScriptFile: [self.data.url('gapi.js'), self.data.url('authContentScript.js')]
  });
}

exports.initAuth = initAuth;

main.js:

var googleClient = require('./googleClient');

我遇到以下问题:

console.error: foxplugin: 
  Error opening input stream (invalid filename?)

在理想情况下,它会在浏览器中打开一个新窗口,允许用户登录 Google(类似于从“真实”内容脚本中请求访问 oauth2 端点时发生的情况)。

【问题讨论】:

    标签: firefox authentication google-api mozilla


    【解决方案1】:

    我遇到了同样的问题,所以我为此制作了一个 npm 插件。它被称为addon-google-oauth2,适用于使用 AdSense API 测试的 Google OAuth2。这真的很简单,它只是为 OAuth2 调用 REST API。步骤:

    1. 为本机应用程序创建 OAuth2 客户端。没有网络或 Android,只有原生。

    2. 如果你的插件使用jpm ok,如果它使用cfx,请迁移到jpm

    3. 使用 npm 下载并保存依赖项 npm install addon-google-oauth2 --save

    4. 按照 README.md 文件的教程进行操作。很简单,只需两次 API 调用

      • refreshToken(options,callback);
      • getToken();
    5. 在您的 data/ 目录中插入 HTML 和 JS 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 2018-10-19
      • 1970-01-01
      • 2019-08-15
      • 2012-04-23
      • 2011-10-20
      相关资源
      最近更新 更多