javascript - chrome.identity.getAuthToken 无法在 Chrome 扩展中获取 Token

标签 javascript jquery google-chrome-extension identity

我在 Chrome 扩展程序中使用以下代码:

 chrome.identity.getAuthToken({'interactive': true}, function(token)
    {
       DoMagicStuff();
    });

这在家里工作正常,我的扩展直接添加为源文件夹,但不适用于另一台计算机(但同一用户)上的打包 CRX 文件。我收到“未定义”作为 token 。

crx内的manifest.json包含一个需要的Key。这是它的相关部分:

{    
    "permissions": [
        "http://ajax.googleapis.com/",
        "storage",
        "identity"
    ],

    "key": "xxxxxxxx",
"oauth2": {
   "client_id": "xxxxx.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/plus.login",      
      "https://www.googleapis.com/auth/plus.me"
    ]
  }

尝试收集 token 时,控制台上看不到错误

根本没有出现请求授权的弹出窗口。未安装弹出窗口拦截器

更新: 看起来应用程序 ID 与 api-dashboard(和商店)中的应用程序 ID 不同。 (我现在已经安装了两次扩展。一个(旧版本)具有来自商店的正确 ID,另一个来自 CRX) 我可以修改 crx 的值吗?

最佳答案

我也在研究这个问题(在 chromebook 上运行开发版本),这是我所理解和为我工作的......

当使用 Pack 扩展 (chrome://extensions) 创建 CRX 时,它会使用 list 中的客户端 ID(来自 Dev Console OAuth),并且存在位置依赖性CRX 来源。

要在另一台计算机上手动安装 CRX,可以执行以下任一操作:

  • 确保 CRX 安装到目标计算机上的同一位置(目录),或者
  • 使用开发控制台创建新的 OAuth 客户端 ID(输入目标计算机上 chrome://extensions 中显示的应用程序 ID),使用新的 OAuth 客户端 ID 更新 manifest.json,使用 Pack 重新创建 CRX扩展,并尝试在目标计算机上使用新的 CRX。

关于javascript - chrome.identity.getAuthToken 无法在 Chrome 扩展中获取 Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778926/

相关文章:

javascript - jquery onclick 添加左边距

google-chrome-extension - 从 chrome devtools 扩展将调试器附加到工作线程

google-chrome - 使用 chrome 扩展向页面添加按钮

javascript - THREE.NormalBlending 的混合方程是什么?

javascript - selenium-webdriver 与 Safari - 错误 : Server terminated early with status 1

javascript - 使用 Firestore 文档和收集数据

javascript - ExtJS FormPanel 更改元素名称

javascript - 从内容脚本触发点击事件 - chrome 扩展

javascript - 使用 JS 在特定的流体页面中隐藏页脚

javascript - Javascript 中的 .sample 等同于什么?