【问题标题】:How to track session of a browser from chrome extension如何从 chrome 扩展程序跟踪浏览器的会话
【发布时间】:2013-12-03 14:07:04
【问题描述】:

您好,我需要知道如何从 google chrome 扩展程序跟踪我的网站的会话。我的网站已添加为 google chrome 中的扩展程序。单击扩展程序图标时,它会导航到我网站的主页。它是登录页面。所以我需要知道用户是否已登录。我希望这只能使用会话来完成。但我不知道如何从 chrome 扩展中跟踪会话变量。请帮助我。

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    一种解决方案是将您网页上的登录状态传达给您的扩展程序(如 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 !");
            }
        }
    });
    

    ma​​nifest.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>"]
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多