我有一個域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