【发布时间】:2016-02-27 05:42:26
【问题描述】:
我正在为使用 Google OAuth2 的客户端构建 Chrome 扩展程序。该扩展程序是为他的公司高度定制的,旨在供内部使用,出于安全原因,我应该只向他发送 .crx 文件,因此没有 Chrome Web 商店或托管或类似文件。 我已经在 Google Dev Console 上注册了扩展,并对收到的客户端 ID 和 API 密钥进行了硬编码,以便 OAuth 访问应用程序。因此,自然而然地,扩展在开发中正常工作。但是,当我将打包的 .crx 文件发送到客户端并在他的 Chrome 中安装它时,他收到以下错误:
- 这是一个错误。
错误:origin_mismatch
本机应用程序:HipLead Extension
您可以通过以下地址向此应用程序的开发人员发送电子邮件: jovandamjanovic@gmail.com
请求详细信息 proxy=oauth2relay755552705 immediate=false 范围=https://www.google.com/m8/feeds origin=chrome-extension://hajhlcbhmjjihnbjhjabojkmonelialo response_type=token redirect_uri=postmessage 状态=515453249|0.4168528853 client_id=898271548842-dhmt34v9rnu3mvbc0sgvobunnjj3qciv.apps.googleusercontent.com include_granted_scopes=true 这就是我们所知道的。
我知道这是由于当他在自己的终端上安装扩展程序时,他的本地副本具有不同的 ID 导致的错误。在控制台中注册该 id 也不起作用,因为这需要我将新的客户端 id 插入硬代码中,然后重新打包 ext,将其发送给他,这将生成第三个但 id 等无法解决任何问题。我不能使用网上商店或在线服务器,如果可以的话,我想避免在扩展程序中创建一个“配置”窗格,让他输入客户端 ID。有没有办法在打包和发送完成的扩展之前预测 id 并对其进行硬编码?
【问题讨论】:
-
“当他安装扩展时,他的本地副本有不同的 id” 这不应该发生在 CRX 安装中(这只能通过企业策略实现)而不是“解压 CRX,加载解压”。您的客户使用哪一种?
-
他将 .crx 拖到他的 chrome://extensions 中。
标签: javascript google-chrome google-chrome-extension oauth