私は 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 などからログインできるようにします。
ジャンレインの仕組み
- ユーザーはサインイン ボタンをクリックし、facebook/wtv を使用してログインします
- 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 を送り返していないと思います...