检测用户是否已从Chrome扩展程序登录

时间:2010-06-04 04:20:28

标签: javascript google-chrome-extension

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

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

thx and best,  尤

2 个答案:

答案 0 :(得分:1)

在chrome-extensions邮件列表中对此进行了一些讨论: http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/6e46a3a6e46d9110/

基本上,正如用户建议的那样,您向google.com发送Xml Http请求,并在当前用户登录时搜索正则表达式:

资料来源:Guillaume Boudreau(关于铬扩展邮件列表)

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]*([^<]+@[^<]+)<\/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 :(得分:1)

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