【问题标题】:How to capture a cookie via a Chrome extension如何通过 Chrome 扩展程序捕获 cookie
【发布时间】:2021-03-03 00:15:16
【问题描述】:

我需要从一个特定的网站捕获一个 cookie,我正在尝试使用 Chrome 扩展程序来做到这一点,但我从未创建过一个。我已经阅读了很多教程,但我无法做到这一点。

我正在尝试使用内容脚本捕获 cookie,但每次都收到错误消息。

这是我的清单、内容脚本和错误的代码...

manifest.json

...
    
"manifest_version": 3,

"permissions": [
    "cookies"
 ],

"content_scripts": [{
    "matches": ["*://google.com/"],
    "js": ["content.js"]
}]

content.js


var ID;

function getCookies(domain, name) {
    chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
        ID = cookie.value;
        showId();
    });
}

function showId() {
    alert(ID);
}

getCookies("https://google.com/", "SSID");  

错误:Uncaught TypeError: Cannot read property 'get' of undefined

我该如何解决?

【问题讨论】:

  • 内容脚本不能使用大部分chrome API,所以在后台脚本中使用。

标签: javascript google-chrome google-chrome-extension content-script manifest.json


【解决方案1】:

documentation for chrome.cookies.get 声明:

[...] 如果清单文件中未指定此 URL 的主机权限,则 API 调用将失败。

您需要为您感兴趣的所有域请求权限,这意味着将它们添加到您的manifest.json 中声明的permissions 中:

"permissions": [
    "cookies",
    "*://google.com/"
],

其次,您实际上不需要注入内容脚本来提取 cookie。如果需要,您可以在后台页面中简单地执行此操作。

【讨论】:

  • 我对 Chrome 扩展了解不多,这是我的第一个。我怎么能使用后台脚本来做到这一点??
  • 你知道什么书或某个地方可以让我进一步了解它吗?
  • @KevenAugusto 不了解书籍,但the welcome page of the documentation 是一个很好的起点,它会教您基础知识,并且您将轻松了解如何编写使用背景页面的扩展程序。
猜你喜欢
  • 2018-08-21
  • 1970-01-01
  • 2018-05-30
  • 2015-05-26
  • 1970-01-01
  • 2013-12-06
  • 2019-10-11
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多