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