如何从JavaScript访问Django登录的用户信息?

时间:2012-07-24 19:12:38

标签: javascript django google-chrome-extension session-cookies django-sessions

我正在为我的Django支持的网站制作镀铬扩展程序(带链接提交功能)。我正在使用django-tastypie发布JavaScript链接。但是,我无法弄清楚如何从JavaScript访问django会话以确定链接的提交者。使用console.log(document.cookie)听起来不太可能,因为document.cookie显然会从当前页面访问cookie,而不是来自我的django驱动的网站的cookie。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

据我所知,有两种方法可以做到这一点。

  1. 在Django应用服务器端实施oAuth,并使用Javascript oAuth method对用户进行身份验证。如果您还没有提供oAuth,这可能对您有很多帮助,所以这可能是一个坏主意。

  2. 将iframe与您网站上的网页一起使用。将内容脚本注入iframe并从中提取数据。您可能必须设置特定端点。

  3. 使用manifestmatch pattern

    {
      ...,
      "content_scripts": [
        {
          "matches": ["http://yoursite.com/api/extension"],
          "js": ["content_script.js"],
          "all_frames": true
        }
      ],
      ...
    }
    

    由另一个内容脚本加载到iframe中的端点可能如下所示:

    ...
    <div id="user_info">joe_user</div>
    ...
    

    然后您的脚本会提取#user_info div的textContent并将其发送到后台页面供您使用:

    var elem = document.querySelector('#user_info');
    chrome.extension.sendMessage({
      text: elem.textContent
    });
    

    有关消息传递的更多信息,请参阅Google的Message Passing documentation

    如果您需要的只是用户信息,我认为这应该适合您。我不会发送任何这样的敏感信息。