如何使用Chrome扩展程序文件分发OAuth2客户端ID?

时间:2015-11-24 16:55:39

标签: javascript google-chrome google-chrome-extension oauth

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

  
      
  1. 这是一个错误。
  2.         

    错误:origin_mismatch

         

    本机应用程序:HipLead Extension

         

    您可以通过以下方式向此应用程序的开发人员发送电   jovandamjanovic@gmail.com

         

    请求详细信息proxy = oauth2relay755552705 immediate = false   范围= https://www.google.com/m8/feeds   起源=铬扩展:// 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和硬编码?

1 个答案:

答案 0 :(得分:1)

不再支持通过CRX文件安装扩展程序,只需将其拖到Extensions页面:[1] [2],至少在Windows和OS X上。

还有两种方法,解压缩安装和企业安装。

解压缩安装意味着只需将扩展程序解压缩到一个文件夹,然后像开发一样加载它。那么,确实,身份证会改变;但有一种方法可以通过提供"key" field in the manifest来确定它。请参阅this FAQ entry中的详细信息。

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