我正在开发一个 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/