Как сделать так, чтобы пользователь автоматически заходил на сайт (написанный на Django) из плагина Chrome - PullRequest
3 голосов
/ 08 сентября 2011

Я разрабатываю плагин для Chrome и хочу, чтобы пользователь автоматически заходил на сайт, если сеанс не истек.Я использую Django на сервере.После прочтения документации по адресу: http://code.google.com/chrome/extensions я знаю, что могу получить cookie сеанса с помощью API Chrome cookie, который имеет sessionID.Есть ли способ войти в систему пользователя с этим sessionID в Django?Или есть другой способ?

1 Ответ

4 голосов
/ 09 сентября 2011

ОБНОВЛЕНИЕ

Я решил эту проблему, сначала получив sessionID, передав его Django через AJAX;
В расширении Chrome:

var sessionid = '';
chrome.cookies.get(
  {url:'http://localhost', name:'sessionid'},
  function(cookie) {
    sessionid = cookie.value;
  });

Получить токен csrf таким же образом; ПОСТ как Джанго; Если вы используете GET, нет необходимости в csrf_token. Не забудьте установить разрешение в manifest.json: "http://localhost"

В программе Django:

sessionid = request.POST['sessionid']
s = Session.objects.get(pk=sessionid)  # From django_session table
s_data = s.get_decoded()  # s_data is a dictionary
user_id = s_data['_auth_user_id']

с этим идентификатором пользователя я могу получить и установить данные пользователя. Я не уверен, что это безопасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...