作为我正在构建的Google Chrome扩展程序的一部分,我需要能够判断用户是否在启用了扩展程序的情况下登录Google Chrome浏览器。谷歌浏览器扩展程序:如何确定用户是否已登录Chrome浏览器?
我该怎么做?
请注意,使用OAuth2(因此,the chrome.identity
API)超出了我的项目范围,所以我需要找到另一种方式。
编辑:我的问题不是这个one的重复,因为该线程中的解决方案不再有效。
作为我正在构建的Google Chrome扩展程序的一部分,我需要能够判断用户是否在启用了扩展程序的情况下登录Google Chrome浏览器。谷歌浏览器扩展程序:如何确定用户是否已登录Chrome浏览器?
我该怎么做?
请注意,使用OAuth2(因此,the chrome.identity
API)超出了我的项目范围,所以我需要找到另一种方式。
编辑:我的问题不是这个one的重复,因为该线程中的解决方案不再有效。
检查LSID
cookie设置:
chrome.cookies.get({url:'https://accounts.google.com', name:'LSID'}, function(cookie) {
if (cookie) {
console.log('Sign-in cookie:', cookie);
}
});
manifest.json的权限:"cookies", "https://accounts.google.com/"
我刚测试过这个地方:1.)用户登录到Gmail而不是Chrome浏览器; 2.)用户已登录Gmail和Chrome浏览器。看起来,两种情况下检索到的cookie都是相同的。即使用户登录到Gmail,是否还有任何cookie信息可以告诉我该用户是否未登录Chrome浏览器? – user5508297
我不知道,对不起。尝试戳该域上的其他cookie,可能使用cookie编辑器扩展。 – wOxxOm
似乎会检测到网站登录,而不是Chrome登录。我研究过,似乎唯一可能的方式是在电子邮件范围内的清单中使用chrome.identity。那么如果电子邮件为空,则用户未登录。 –
chrome.identity.getAuthToken({interactive: false}, function (token) {
if (!token) {
if (chrome.runtime.lastError.message.match(/not signed in/)) {
console.log("not singed in");
} else {
console.log("singed in");
}
}
});
而且不要忘记添加"identity"
权限。
chrome.identity是唯一的api。你为什么需要另一种方式? –
[检测用户是否从Chrome扩展程序登录]可能的重复(http://stackoverflow.com/questions/2971491/detecting-whether-user-is-logged-in-or-not-from-a -chrome-extension) –
你应该澄清你是否意味着登录chrome,例如从chrome://设置页面,或者只登录到Google帐户,而无需登录chrome本身。 – kzahel