2011-07-29 10 views
2

私はRuby on Railsを使ってアプリケーションを構築しています。アプリケーションは、apiアプリケーションからのJSON呼び出しによってデータを取得するJavascriptアプリケーションです。また、アプリケーション自体とapiのクロスドメイン認証も提供します。Javascriptを使用してCookie認証を使用してJSONデータを取得するにはどうすればよいですか?

私は、同じ秘密セッションキーと同じ名前の両方のアプリケーションCookieを作成することによって、クロスドメイン認証を処理します。 _app_an_api_session

ここでは、シナリオを書き留めておきますが、失敗した場合はお見せしましょう。

アプリケーションドメインはdomain.localapi.domain.local

api.domain.local/meが保護されたページであると言うことができますAPIのドメインです。私はそれを開いたとき、私は私がアプリケーションに行くとsign inと再びapi.domain.local/meに行くとき、私はそれでデータを見ることができますunauthenticated

を得ました。 [合格] [それは反対の行動のためにも働く]。

問題があり、例えば、sign in後に私はstatus(canceled)あるコンソールで見ることができ、domain.localapi.domain.local/me内容[JSONデータ]をロードします。

さらに、デバッグ用にも。 apiへの各リクエストでenv変数が表示されるようにしました。したがって、api.domain.local/meに直接アクセスすると、コンソールにCookieのハッシュが表示されます。実際のアプリケーションを経由する場合は、クッキー/セッションがまったくありません。

このようにするにはどうすればいいですか?

答えて

0

あなたの問題は、異なるドメインとサブドメイン間の通信を妨げる同名ポリシーです。プロキシ、JSON-Pまたはexternal proxyを使用して解決できます。

+0

クッキーが正常に動作します。問題は、Javascript – amrnt

+0

を介して認証が必要な '/ me'のデータを取得することです。ちょうどそれを見て、答えを更新する秒を与えてください。 – marc

+0

動作しません。認証を必要としない '/ user/2'を読み込むことができます。しかし、私は '/ me'を読み込むことができます。 – amrnt

関連する問題