0

私は S3 でホストされている静的 Web ページで作業しており、セッション管理用の API として Django を使用しています。

ユーザーが自分の Web サイトにサインインすると、S3 POSTing に JS コードがありますが、ブラウザーに Cookie が保存されていません。

クッキーを受け入れていないのが jQuery $.post なのか、それともクッキーの送信を許可していないのが Django なのかはわかりません。どうすればこれを克服できますか?

現在、djangoアプリにURLエンドポイントもあり、Cookieが機能しているかどうかを確認できますが、URLにアクセスすると標準メッセージが表示されます

Please enable cookies and try again.

私のブラウザはクッキーを受け入れますが。

Django でレンダリングされたページを使用してこれらの URL を操作すると、これらの URL が正常に機能します。

どんな助けでも大歓迎です-ありがとう

編集 - コードの表示:

Janrain を使用して、ユーザーが facebook や twitter などからログインできるようにします。

ジャンレインの仕組み

  1. ユーザーはサインイン ボタンをクリックし、facebook/wtv を使用してログインします
  2. Janrain はサーバー上のユーザー データを取得し、この関数を介して django に投稿するトークンを提供します

janrain.events.onProviderLoginToken.addHandler(function(tokenResponse) {

        $.ajax({

            type: "POST",
            url: post_form_url,
            data: formdata + "&token=" + tokenResponse.token,
            success: function(res, textStatus, jqXHR) {
                //do stuff now that we are logged in ...
                console.log(jqXHR.getResponseHeader('Set-Cookie')); //returns null
                //$('#redirect').submit();
            },
        });

ジャンゴで

def login_via_janrain(request):
    if request.method == "POST":
        janrain_token = request.POST.get('token')

        // communicate w/janrain api to get info from this token (i.e. who just logged in via this token)

        #create (or pull) user based on data returned from janrain api and do a Django login

        auth.login(request, user)

        #return success msg to $.post (session cookies should be automatically included in the response)

        return HttpResponse("success")

S3 の使用

現在、S3 でホストされている静的サイトを持っています。django でレンダリングされたビューを使用してこれらの URL をテストしましたが、最終的には S3 サイトでビューをレンダリングし、django を API エンドポイントとして使用するだけにしたいと考えています。

現在、S3 サイトからログインできますが、ログインに成功した後、表示する Cookie がありません... django が Cookie を送り返していないと思います...

4

0 に答える 0