Определение того, вошел ли пользователь в систему или нет из расширения Chrome

есть ли простой способ определить с помощью расширения Chrome, что пользователь вошел в свою учетную запись Google или нет.

Я предполагаю, что есть неприятный способ выяснить это, загрузив ресурс html/css/js, который требует аутентификации. Но я хотел бы сделать это "четким" способом.

спс и наилучший, Виктор


person Viktor    schedule 04.06.2010    source источник


Ответы (2)


это обсуждалось в списке рассылки chromium-extensions: http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/6e46a3a6e46d9110/

По сути, как предложил пользователь, вы отправляете запрос Xml Http на google.com и выполняете поиск по регулярному выражению, если текущий пользователь вошел в систему:

Источник: Guillaume Boudreau (в списке рассылки chromium-extensions)

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();
person Mohamed Mansour    schedule 05.06.2010
comment
Можете ли вы кратко объяснить, как я могу использовать этот код с расширением Chrome? - person Keyur Patel; 07.05.2016
comment
Как и @KeyurPatel, я также был бы признателен за объяснение того, что делает этот код. - person user5508297; 17.08.2016

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" к разрешениям.

person holden321    schedule 17.11.2017