ドメイン domain1.com があります。ユーザーがログインし、Cookie が設定されます。これは、Django セッションを使用して行われます。
次に、別のドメイン domain2.com に移動します。このドメインは JavaScript を実行します。この JavaScript から、ユーザーが domain1.com にログインしているかどうかを確認したいと思います。
これは可能ですか?domain2 から domain1 に属する Cookie を確認できますか? または、ユーザーがログインしているかどうかを確認するために、ajax 経由で domain1 を呼び出すことはできますか?
また、ユーザーは元々 Chrome から domain1 にログインしていた可能性がありますが、現在は別のブラウザーから domain2 にアクセスしています。Cookie はブラウザ固有のものではありませんか?
編集:
私が解決しようとしている本当の問題は?(以下のコメントを再): Chrome 拡張機能を作成しました。ユーザーがドメイン 2 の拡張機能アイコンを押すと、JavaScript が実行され、ページから情報が収集されます。この情報は、domain1 のユーザーのアカウントに送信する必要があります。domain2 は、私が作成したドメインではなく、任意のドメインにすることができることに注意してください。
AJAX と Cookie で試したこと。
domain1 から Cookie を設定します。
response.set_cookie("user_cookie", value="somevalue", max_age=60*60, expires=None, path='/', domain=None, secure=None, httponly=False)
domain1.com/checklogin から実行される Python 関数を作成します。
@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」です
次のように domain2 から 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 は実際のドメインであることに注意してください。これが問題でしょうか?関数を適切に呼び出します。