Как получить данные JSON через Javascript с аутентификацией куки? - PullRequest
2 голосов
/ 29 июля 2011

Я создаю приложение с Ruby on Rails. Приложение представляет собой приложение Javascript, которое получает данные посредством вызовов JSON из приложения api. Он также обеспечивает междоменную аутентификацию для самого приложения и api.

Я выполняю междоменную аутентификацию, создавая файлы cookie приложения с одним и тем же секретным ключом сеанса и одним и тем же именем, например, _app_an_api_session.

Теперь я запишу сенарио и покажу вам, когда он потерпит неудачу.

Доменом приложения является domain.local домен API api.domain.local

Допустим, api.domain.local/me защищенная страница. Когда я открываю его, я получаю unauthenticated

Когда я иду в приложение и sign in и снова иду в api.domain.local/me, я вижу данные в нем. [Pass] [это работает и для противоположных действий].

Проблема, например, в том, что после sign in я хочу загрузить api.domain.local/me содержимое [данные JSON] в domain.local, в консоли я вижу, что status равно (canceled).

Дополнительно для отладки ради. Я пытался видеть переменную env при каждом запросе к api. Таким образом, когда я получаю прямой доступ к api.domain.local/me, я вижу хэш куки в консоли, иначе, если это происходит через реальное приложение, куки / сеансы вообще отсутствуют.

Итак, как сделать это правильно?

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

В Foursquare был хороший пост о том, как сделать это с помощью iFrame.

http://engineering.foursquare.com/2011/12/08/web-sites-are-clients-too/

0 голосов
/ 29 июля 2011

Ваша проблема - это политика одного и того же происхождения, которая запрещает связь между разными доменами и поддоменами. Вы можете решить эту проблему либо с помощью прокси, JSON-P или внешнего прокси .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...