0

Как часть расширения Google Chrome, которое я создаю, мне нужно выяснить, был ли пользователь входить в браузер Google Chrome, когда расширение включено.Расширение Google Chrome: как узнать, был ли пользователь зарегистрирован в браузере Chrome?

Как это сделать?

Обратите внимание, что использование OAuth2 (и, следовательно, the chrome.identity API) выходит за рамки моего проекта, поэтому мне нужно найти другой способ.

EDIT: мой вопрос не является дубликатом этого one, потому что решение в этой теме больше не работает.

+0

chrome.identity - единственный апи для этого. Зачем вам нужен другой путь? –

+0

Возможный дубликат [Обнаружение того, был ли пользователь зарегистрирован или нет с расширением Chrome] (http://stackoverflow.com/questions/2971491/detecting-whether-user-is-logged-in-or-not-from-a -chrome-extension) –

+0

Вы должны уточнить, означает ли вы, что вы заключили контракт на хром, например с страницы настроек chrome: // или просто подписана в учетную запись google без входа в Chrome. – kzahel

ответ

2

Проверьте LSID cookie установлено:

chrome.cookies.get({url:'https://accounts.google.com', name:'LSID'}, function(cookie) { 
    if (cookie) { 
     console.log('Sign-in cookie:', cookie); 
    } 
}); 

manifest.json разрешение: "cookies", "https://accounts.google.com/"

+0

Я только что протестировал это: 1.) Пользователь выполнил вход в Gmail, но не в браузер Chrome; 2.) Пользователь вступил в систему как в Gmail, так и в браузере Chrome. Похоже, что извлеченный файл cookie в обоих случаях идентичен. Есть ли информация о файлах cookie, которые могут сообщить мне, если пользователь не зашел в браузер Chrome, даже если они вошли в Gmail? – user5508297

+1

Не знаю, извините. Попробуйте вытолкнуть другие файлы cookie в этом домене, возможно, используя расширение редактора файлов cookie. – wOxxOm

+0

кажется, что это обнаруживает вход в систему, а не вход в Chrome. Ive исследовал и, кажется, единственный возможный путь - с chrome.identity с областью электронной почты в манифесте. то, если электронная почта пуста, пользователь не выполнил вход. –

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

Смежные вопросы