2010-06-04 1 views
3

есть простой способ обнаружить из расширения Chrome, что пользователь зашел в свою учетную запись google или нет.Обнаружение того, был ли пользователь вошел в систему или нет с расширения Chrome

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

ТНХ и лучше, Виктор

ответ

1

там были некоторые дискуссии о том, что в рамках хромовых-расширений списка рассылки: http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/6e46a3a6e46d9110/

В принципе, как пользователь предложил, вы посылаете запрос Xml Http в Google .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? –

+0

Как @KeyurPatel, я также хотел бы получить объяснение того, что делает этот код. – user5508297

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