django - 如何让用户从 Chrome 插件自动登录网站(用 Django 编写)

标签 django session cookies google-chrome-extension

我正在开发一个 Chrome 插件,希望用户在 session 未过期时自动登录该网站。我在服务器上使用 Django。 阅读文档后:http://code.google.com/chrome/extensions 我知道我可以使用具有 sessionID 的 Chrome cookie API 获取 session cookie。 有没有办法用这个 sessionID 登录用户到 Django?还是有别的办法?

最佳答案

更新

我通过首先获取sessionID,通过AJAX将它传递给Django解决了这个问题;
在 Chrome 扩展中:

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

同理获取csrf token;将两者都发布到 Django;如果您使用 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']

有了这个用户ID,我就可以获取和设置用户的数据。我不确定这是否安全。

关于django - 如何让用户从 Chrome 插件自动登录网站(用 Django 编写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350524/

相关文章:

django - 管理员中的自定义用户模型

session - 多个 grails 应用程序 session 超时问题

php - 使用多个 PHP 处理 PHP servlet 的 session

java - 玩吗!框架有任何内置机制来防止 session 劫持吗?

javascript - 从不同域读取 cookie

authentication - cookie 与 JWT 有何不同?为什么它们被认为比 JWT 更差?

python - django 如何从互联网下载文件

django - 在 django-oscar 主页中添加产品

django-import-export 未显示在管理中

javascript - IE 9.0 中未存储第三方 cookie