2010-06-04 83 views
3

是否有一种简单的方法可以从Chrome扩展程序中检测到用户已登录到他的Google帐户中。检测用户是否从Chrome扩展程序登录

我想通过加载一个需要验证的html/css/js资源来解决这个问题有一种讨厌的方法。 但我想以“清晰”的方式做到这一点。

THX和最好的, 尤

回答

1

一直存在铬的扩展内邮件列表上的一些讨论: http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/6e46a3a6e46d9110/

基本上,用户建议,发送XML HTTP请求发送到谷歌.com和通过正则表达式搜索,如果当前用户已登录:

来源:纪尧姆布德罗(上铬的扩展邮件列表)

var currentUser; 
var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function(data) { 
     if (xhr.readyState == 4) { 
       currentUser = null; 
       if (xhr.status == 200) { 
         var re = new RegExp(/<b class="?gb4"?>[\s]*([^<][email protected][^<]+)<\/b>/i); 
         var m = re.exec(xhr.responseText); 
         if (m && m.length == 2) { 
           currentUser = m[1]; 
         } 
       } 
       console.log("Currently logged user (on google.com): " + 
currentUser); 
     } 
}; 
xhr.open('GET', 'https://www.google.com/', false); 
xhr.send(); 
+1

你能否简单介绍一下如何在Chrome扩展中使用这段代码? – 2016-05-07 06:56:34

+0

就像@KeyurPatel一样,我也希望能解释一下这段代码在做什么。 – user5508297 2016-08-17 05:30:58

0
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"添加到权限。

相关问题