如何从chrome扩展程序跟踪浏览器的会话

时间:2013-11-22 08:12:38

标签: google-chrome-extension

您好我需要知道如何从Google Chrome扩展程序跟踪我的网站会话。我的网站已添加为谷歌浏览器的扩展程序。当点击扩展程序图标时,它导航到我的网站的主页。它是一个登录页面。所以我需要知道用户是否已经登录。我希望这只能使用sessions.But我不知道如何从chrome扩展中跟踪会话变量。请帮助我。

1 个答案:

答案 0 :(得分:3)

一种解决方案是将您的网页上的登录状态传达给您的扩展程序(如 here 所述)。


在您的网页上,您必须向扩展程序发送消息,以告知其用户的登录状态。

  • 用户成功登录后,请务必告知扩展程序:

    chrome.runtime.sendMessage(<your_extension_id>, { status: "logged in" });

  • 一旦检测到用户会话已结束(已过期或由于手动注销),请确保让扩展名知道:

    chrome.runtime.sendMessage(<your_extension_id>, { status: "logged out" });


从您的分机中收听来自网页的消息并进行相应更新。

扩展源代码:

<强> background.js:

var url = "<the_url_of_your_webpage_that_sends_messages>";

/* Listen for external messages (messages from web-pages) */
chrome.runtime.onMessageExternal.addListener(function(msg, sender) {
    if (sender.url == url) {
        /* OK, this page is allowed to communicate with me */
        if (msg.status === "logged in") {
            /* Cool, the user is logged in */
            alert("Logged in !");
        } else if (msg.status === "logged out") {
            /* How sad, the user is leaving */
            alert("Logged out !");
        }
    }
});

<强>的manifest.json:

{
    "manifest_version": 2,
    "name":    "Test Extension",
    "version": "0.0",

    "background": {
        "persistent": false,
        "scripts": ["background.js"]
    },

    "externally_connectable": {
        "matches": ["<the_url_of_your_webpage_that_sends_messages>"]
    }
}