2010-06-04 88 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"添加到權限。

相關問題