javascript - Chrome 扩展程序 - 保存弹出窗口的登录详细信息

标签 javascript google-chrome google-chrome-extension

我正在开发一个 Chrome 扩展程序,它将要求用户登录帐户才能查看其内容。我想要做的是通过在用户登录后保存某种 cookie 或带有相关登录/ session 数据的 localStorage 来防止用户每次都必须登录。

到目前为止,经过一些研究后,似乎使用 Google Chromes 本地存储 API 将是执行此操作的最佳方式(如果有人能证实这一点,那就太好了)。

我的问题是设置和获取本地存储。我在这里设置了一个虚拟本地存储场景,只是为了尝试让 Chrome 为扩展程序存储任何类型的本地存储:

弹出.js:

function setCookie(){
    chrome.extension.sendMessage({name: 'setLoginCookie'}, function(otherResponse) {
        console.log(otherResponse)
    })
}

function getCookie(){
    chrome.extension.sendMessage({name: 'getloginCookie'}, function(response) {
        alert(response)
    })
}

事件.js:

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {

    if (request.name == 'setLoginCookie') {
        var obj = {test:"test"}    
        chrome.storage.sync.set(obj, function() {
            alert('Data saved');
        });           
    }    

    if (request.name == 'getLoginCookie') {
           chrome.storage.sync.get('test', function(data) {
                sendResponse({ screenshotUrl: data.test });
        })       
    }
    return true;

});

执行 setCookie 函数时,我收到“数据已保存!”的警报这向我表明它已经工作,但是当我检查我的扩展 Chrome 开发工具上的本地存储时,那里什么也没有,如果我调用 getCookie 函数,那么它不会接收任何东西。

这是我的 manifest.json 中的权限:

  "permissions": [
    "storage",
   "cookies",      
    "tabs",
    "<all_urls>",
    "pageCapture",
    "downloads"      
  ],  

我在这里使用了错误的方法吗?使用 chrome.storage.sync 可能是我哪里出错了吗?

谢谢

最佳答案

chrome.storage.sync 与本地存储不同,您不会在开发工具本地存储中看到使用此方法保存的数据。

您的消息不匹配。您正在使用 {name: 'getloginCookie'} 发送消息,if 语句正在检查 getLoginCookie。区别在于您传递给 sendMessage 函数的参数中的小写 l

关于javascript - Chrome 扩展程序 - 保存弹出窗口的登录详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46363452/

相关文章:

javascript - jquery datepicker - 在选择时激活另一个日期选择器

python-3.x - selenium.common.exceptions.SessionNotCreatedException : Message: session not created from tab crashed using ChromeDriver Chrome Selenium Python

Javascript - window.open() 弹出窗口大小问题

google-chrome - .crx 文件在 Chrome 中安装

javascript - 使用 Vue JS 和 for 循环设置事件状态

javascript - 具有多个数组的数组上的 ng-repeat

java - 在 Ubuntu 14.04 的 chrome 中安装 java 插件

javascript - 如何在内容脚本中修改Google搜索结果页面?

javascript - 努力在 Chrome 扩展中获取 DOM 数据

javascript - 如何在 JavaScript 中解析没有基本 URL 的相对 URL