2013-11-22 4 views
1

Привет, мне нужно знать, как отслеживать сеанс моего веб-сайта с расширением google chrome. Мой сайт был добавлен в качестве расширения в google chrome. При щелчке по значку расширения он перемещается на домашнюю страницу моего сайта. Это страница входа. Так что мне нужно знать, был ли пользователь зарегистрирован или нет. Я надеюсь, что это можно сделать только с помощью сеансов. Но я не знаю, как отслеживать переменную сеанса из хром. Пожалуйста, помогите мне.Как отслеживать сеанс браузера с расширением chrome

ответ

3

Одним из решений является передача статуса входа с вашей веб-страницы на ваш добавочный номер (как указано выше: here).


С вашей веб-страницы вы должны отправить сообщения на расширение, чтобы сообщить об этом статусе входа пользователя.

  • После того, как пользователь успешно входит в систему, убедитесь, что вы позволяете расширение знать:

    chrome.runtime.sendMessage(<your_extension_id>, { status: "logged in" });

  • После того, как вы обнаружили, что пользователи завершения сеанса (либо с истекшим сроком годности или из-за вручную выхода из), убедитесь, что вы позволяете расширение знать:

    chrome.runtime.sendMessage(<your_extension_id>, { status: "logged out" });


С вашего внутреннего абонента прослушивайте сообщения с веб-страницы и соответствующим образом обновляйте их.

Расширение исходного кода:

background.js:

var url = "<the_url_of_your_webpage_that_sends_messages>"; 

/* Listen for external messages (messages from web-pages) */ 
chrome.runtime.onMessageExternal.addListener(function(msg, sender) { 
    if (sender.url == url) { 
     /* OK, this page is allowed to communicate with me */ 
     if (msg.status === "logged in") { 
      /* Cool, the user is logged in */ 
      alert("Logged in !"); 
     } else if (msg.status === "logged out") { 
      /* How sad, the user is leaving */ 
      alert("Logged out !"); 
     } 
    } 
}); 

manifest.json:

{ 
    "manifest_version": 2, 
    "name": "Test Extension", 
    "version": "0.0", 

    "background": { 
     "persistent": false, 
     "scripts": ["background.js"] 
    }, 

    "externally_connectable": { 
     "matches": ["<the_url_of_your_webpage_that_sends_messages>"] 
    } 
} 
Смежные вопросы