Macos 从本机Mac应用程序识别Firefox加载项

Macos 从本机Mac应用程序识别Firefox加载项,macos,firefox,websocket,firefox-addon,Macos,Firefox,Websocket,Firefox Addon,我正在开发一个firefox web扩展(插件),它通过“套接字连接”与我的本机Mac应用程序进行通信。我被授权客户端(来自firefox插件的套接字客户端)的要求所困扰,因为我无法找到我未打包的firefox插件的唯一标识符 我正在尝试在应用程序端映射唯一Id,以便检查具有相同Id的加载项是否正在尝试连接到套接字服务器,如果未经授权的标识符出现,套接字服务器将受到限制 连接请求中的Origin头附带的标识符是附加组件的内部UUID,根据Firefox文档,该附加组件在每次安装时都会发生更改 我

我正在开发一个firefox web扩展(插件),它通过“套接字连接”与我的本机Mac应用程序进行通信。我被授权客户端(来自firefox插件的套接字客户端)的要求所困扰,因为我无法找到我未打包的firefox插件的唯一标识符

我正在尝试在应用程序端映射唯一Id,以便检查具有相同Id的加载项是否正在尝试连接到套接字服务器,如果未经授权的标识符出现,套接字服务器将受到限制

连接请求中的Origin头附带的标识符是附加组件的内部UUID,根据Firefox文档,该附加组件在每次安装时都会发生更改


我欢迎一个答案,可以指导我选择一个完美的唯一标识符或不同的方法来验证加载项。

要使它在这种情况下工作,您需要在manifest.json中添加应用程序密钥

一旦完成扩展的开发,就可以打包并提交给AMO审查和签署。如果您上传的打包扩展不包含ID,AMO将为您生成一个ID。只有在这一点上,加载项才会被分配一个永久ID,该ID将嵌入到已签名的打包扩展中


不过,请查看有关这方面的完整信息。他们也有关于如何使用AMO的完整指南。

在开发阶段,我有没有办法为一个未打包的附加组件做到这一点。对于chrome,chrome本身的打包扩展将创建一个唯一的Id。这在这里可能吗?如果您安装了它,并且只刷新firefox,它将保留安装时发布的密钥。如果你重新启动应用程序,它会得到一个新的ID,这实际上是基本firefox中提供给你的所有ID。如果您需要更多,尽管您始终可以使用AMO API[link]生成它,但我已经尝试对加载项进行签名,您的观点是正确的,即扩展id是根据manifest.json设置的。但是,通过标头细节发送的内部UUID在不同浏览器中仍然不统一。有什么建议吗?@VikasKrishnan,很遗憾,您必须为每个浏览器分别打包扩展。我写了一个脚本,将我对Firefox、Chrome和Opera的扩展打包,为每个扩展生成这三个产品。@JerryKrinock我很清楚我应该单独签署它。我的问题是:我只需要允许我的扩展在我的mac应用程序上进行连接请求。任何人都不能模拟客户端设置,也不能连接到我的服务器。我需要一个唯一的标识符,当客户端尝试连接时,该标识符应可用或可访问。。。。到目前为止,可用的源标题在浏览器中并不统一,每个安装的更改也不相同。