我有一个域domain1.com。用户登录并设置cookie。这是使用Django会话完成的。Django会话cookie:从(任何)其他域,检查用户是否登录
然后我转到另一个域domain2.com。该域名运行javascript。从这个javascript,我想看看用户是否登录到domain1.com。
这可能吗?我可以在domain2中看到属于domain1的cookie吗?或者我可以以某种方式通过ajax拨打电话domain1来检查用户是否已登录?
另外,用户最初可能从Chrome登录到domain1,但现在他们正在从另一个浏览器访问domain2。 Cookie浏览器不是特定的吗?
编辑:
我试图解决的真正问题? (重新评论如下):我创建了一个Chrome扩展。当用户按下来自domain2的扩展图标时,将运行一个JavaScript,它从页面收集信息。这些信息需要发送到域1上的用户帐户。请注意,domain2可以是任何域,不是我创建的域。
我尝试使用AJAX和cookie。从domain1的
集饼干:
response.set_cookie("user_cookie", value="somevalue", max_age=60*60, expires=None, path='/', domain=None, secure=None, httponly=False)
创建Python函数,它是从domain1.com/checklogin执行:
@csrf_exempt
def is_logged_in(request):
cookie = request.COOKIES.get('user_cookie')
if cookie is not None:
return HttpResponse("1")
else:
return HttpResponse("0")
转到domain1.com/checklogin - >的响应是“ 1" 域2
调用JavaScript如下:
var xmlHttp_1=new XMLHttpRequest();
xmlHttp_1.open("POST","http://domain1.com/checklogin/",false);
xmlHttp_1.send();
alert(xmlHttp_1.responseText);
此处的回应错误地为0.它没有看到由domain1创建的cookie。
请注意,在这一点上,domain1是localhost和domain2是一个真正的域。这可能是问题吗?它确实调用了该函数。
您尝试在此处解决的实际问题是什么? – 2013-04-23 07:31:30
你可能想看看openId或oauth解决方案,这里是一个关于跨浏览器会话的优秀帖子(http://dustinfarris.com/2012/2/sharing-django-users-and-sessions-across-projects/ ) – 2013-04-23 07:43:15
请不要完全改变问题,以便现在的答案无关紧要!改为提出一个新问题。 – 2013-04-23 13:04:02