一些背景信息:
我已经实现了一个有效的 Chrome 扩展来从浏览器内操作 cookie,与 EditThisCookie 不同。 。基本功能包括添加、删除、编辑、导入和导出 cookie。
问题:
目前,导入和导出 cookie 只能使用必须发送的 JSON 平面文件,因此为了增加便利性,我想知道是否可以将本地计算机上的 cookie直接导入到远程计算机 通过我的扩展。基本上,我想将 cookie 从一台计算机“推送并设置”到另一台计算机。为简单起见,两者都登录到同一个 Google 帐户。当然,需要有一种方法来识别和验证远程计算机,因此我正在考虑使用任何可用的身份验证 API。
由于这个想法还处于起步阶段,我想问一下这在技术上是否可行?我应该了解有关 Chrome 扩展程序的任何技术限制(它们如何沙箱化等)是否会阻止我实现此目标?
最佳答案
假设:
- 两个 Chrome 实例均登录同一帐户
- 两者都安装了扩展
- 为扩展程序启用 Chrome 同步(默认)
在本例中,chrome.storage.sync
API自动在实例之间复制存储更改。在这种情况下,您需要做的就是:
- 一次性更改 Cookie
- 在
chrome.storage.sync
中记录所需的 Cookie 状态 - 使用
chrome.storage.onChanged
检测其他实例中的存储变化 - 处理更改以复制 Cookie 状态
请注意,chrome.storage.sync
不会提供所有更改的事务日志 - 仅提供最新状态。尝试将事务日志存储在 chrome.storage.sync
中以便您可以执行完全相同的操作,可能会遇到 storage quotas快。
如果同步存储的配额或要求不适合您的使用案例,您需要创建自己的数据后端服务器。它可以通过 chrome.gcm
API 向 Chrome 传达实时更新或 WebSocket 连接,并使用 Google 的 OAuth 进行身份验证。
还有比部署自己的服务器更容易使用的后端服务,例如 Firebase 。有一个sample extension开始吧。
如果您无法假设另一个实例安装了相同的扩展程序,则您无法远程操作 Cookie,因为 Chrome 不会从远程源同步它们。
关于javascript - 是否可以通过 Chrome 扩展来操作远程计算机的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458656/