【问题标题】:How do I distribute OAuth2 client id with my chrome extension file?如何使用我的 chrome 扩展文件分发 OAuth2 客户端 ID?
【发布时间】:2016-02-27 05:42:26
【问题描述】:

我正在为使用 Google OAuth2 的客户端构建 Chrome 扩展程序。该扩展程序是为他的公司高度定制的,旨在供内部使用,出于安全原因,我应该只向他发送 .crx 文件,因此没有 Chrome Web 商店或托管或类似文件。 我已经在 Google Dev Console 上注册了扩展,并对收到的客户端 ID 和 API 密钥进行了硬编码,以便 OAuth 访问应用程序。因此,自然而然地,扩展在开发中正常工作。但是,当我将打包的 .crx 文件发送到客户端并在他的 Chrome 中安装它时,他收到以下错误:

  1. 这是一个错误。

错误: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


【解决方案1】:

不再支持通过简单地将 CRX 文件拖到扩展页面来安装扩展:[1][2],至少在 Windows 和 OS X 上。

剩下两种方法,解压安装和企业安装。

解压安装意味着只需将扩展提取到一个文件夹,然后像开发时一样加载它。然后,确实,ID 会改变;但是有一种方法可以通过提供"key" field in the manifest 来确定它。在this FAQ entry 中查看更多详细信息。

但在严肃的企业环境中,这种方法是完全不可接受的。 “黄金标准”方法是Enterprise Policy install。这将允许将 CRX 文件保存在某个内部服务器和 auto-update from there 上。您的客户需要认真考虑这个计划。

【讨论】:

  • 嗯,我的客户能够以这种方式安装它们。由于他经营一家小公司,我很确定我可以讨论提取和加载扩展,就像在开发中一样。感谢您提供此解决方案。我也会和他谈谈企业策略安装。
猜你喜欢
  • 2012-10-02
  • 2020-02-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
相关资源
最近更新 更多