Ruby on Railsを使用してアプリケーションを構築しています。このアプリケーションは、JSON呼び出しによってデータを取得するJavascriptアプリケーションです。 api
応用。また、アプリケーション自体とアプリケーションのクロスドメイン認証も提供します。 api
.
同じシークレットセッションキーと同じ名前の両方のアプリケーションCookieを作成することで、クロスドメイン認証を処理します。 _app_an_api_session
.
それでは、シナリオを書き留めて、失敗したときに表示します。
アプリケーションドメインは domain.local
APIドメイン api.domain.local
それは言うことができます api.domain.local/me
保護されたページです。私がそれを開くとき、私は得ました unauthenticated
アプリケーションに移動して sign in
そしてに行く api.domain.local/me
繰り返しますが、その中のデータを見ることができます。 [合格] [反対のアクションでも機能します]。
問題は、例えば、 sign in
ロードしたい api.domain.local/me
内容[JSONデータ] domain.local
、コンソールで次のことがわかります status
は (canceled)
.
加えて、デバッグのために。私は見ようとしました env
への各リクエストの変数 api
。だから、私がアクセスすると api.domain.local/me
直接、コンソールでCookieハッシュを確認できます。それ以外の場合、実際のアプリケーション経由の場合は、Cookie /セッションはまったくありません。
それで、これを正しく行うことを可能にする方法は?
回答:
回答№1は1Foursquareには、iFrameでこれを行う方法についてのすばらしい投稿がありました。
http://engineering.foursquare.com/2011/12/08/web-sites-are-clients-too/
回答№2の場合は0
あなたの問題は、異なるドメインとサブドメイン間の通信を妨げる同一生成元ポリシーです。これは、プロキシ、JSON-P、または 外部プロキシ.