web-dev-qa-db-ja.com

セッションCookieが渡されないため、ログインできません

ユーザーをサービス3.11経由でdrupalにログインするhtml5アプリを持っていますが、接続できません。

Chrome Postmanプラグインを使用して、期待どおりに接続できます。Postmanと私のコードの違いは、アプリからCookieセッションが渡されないことです。withCredential:trueを読んだところからセッションCookieを渡すことになっていますが、機能しませんか?

  1. api/user/login.json-ユーザーを期待どおりにログインさせます
  2. api/user/token.json-期待どおりにトークンを返します
  3. api/system/connect.json-常に匿名ユーザー0のデータを返します

ログインとトークンの後に送信されるシステム/接続コードは次のとおりです。

                jQuery.ajax({
                    type: "POST",
                    url: connectUrl,
                    xhrFields: {
                        withCredentials: true
                    },
                    success: function (result) {
                        dosomething();
                    },
                    error: function (result) {
                        dosomething();
                    },
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader('X-CSRF-Token', Session.user_token);
                    },
                });
1
nakeddesign

この問題に遭遇した他の人のために、私は最終的に次のようにしてそれを解決することができました。 CORSが追加のOPTIONSリクエストのどこに追加するか、私たちが通過する資格情報を想定しています。

jQuery.support.cors = true;
    jQuery.ajaxSetup({
        xhrFields: {
            withCredentials: true   // Pass session cookie with requests
        }
    });
1
nakeddesign