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

How to access Django signed-in user information from the JavaScript?

本文关键字:登录 用户 信息 Django 访问 JavaScript      更新时间:2024-02-13

我正在为我的Django网站做一个chrome扩展(带有链接提交功能)。我使用django-tastypie发布JavaScript中的链接。然而,我不知道如何从JavaScript访问django会话,以确定链接的提交者。使用console.log(document.cookie)听起来不太可能,因为document.cookie显然是从当前页面访问cookie,而不是从我的django网站访问cookie。如有任何帮助,我们将不胜感激。

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

  1. 在Django应用服务器端实现oAuth,并使用Javascript oAuth方法对用户进行身份验证。如果你还没有提供oAuth,这可能对你来说是一项艰巨的工作,所以这可能是一个坏主意。

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

在您的清单中使用匹配模式:

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

由另一个内容脚本加载到iframe中的端点可能看起来像这样:

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

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

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

有关消息传递的更多信息,请参阅谷歌的消息传递文档。

我认为,如果你所需要的只是用户信息,这应该对你有用。不过我不会发送任何像这样的敏感信息。