【发布时间】:2013-12-03 14:07:04
【问题描述】:
您好,我需要知道如何从 google chrome 扩展程序跟踪我的网站的会话。我的网站已添加为 google chrome 中的扩展程序。单击扩展程序图标时,它会导航到我网站的主页。它是登录页面。所以我需要知道用户是否已登录。我希望这只能使用会话来完成。但我不知道如何从 chrome 扩展中跟踪会话变量。请帮助我。
【问题讨论】:
您好,我需要知道如何从 google chrome 扩展程序跟踪我的网站的会话。我的网站已添加为 google chrome 中的扩展程序。单击扩展程序图标时,它会导航到我网站的主页。它是登录页面。所以我需要知道用户是否已登录。我希望这只能使用会话来完成。但我不知道如何从 chrome 扩展中跟踪会话变量。请帮助我。
【问题讨论】:
一种解决方案是将您网页上的登录状态传达给您的扩展程序(如 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>"]
}
}
【讨论】: