Можно ли использовать Ajax в Google App Engine как зарегистрированный пользователь по протоколу https из домена, не являющегося appspot.com? - PullRequest
4 голосов
/ 06 августа 2009
* +1000 * Предположим:
  1. У вас есть веб-сайт http://www.example.com, который перенаправляет на проект в Google App Engine (например, example.appspot.com);
  2. вы хотите, чтобы обмен данными между пользователем проходил через SSL (т. Е. https://example.appspot.com); и
  3. Вы хотите, чтобы домен, который будет показан пользователю, был *: //www.example.com (т.е. не https://example.appspot.com).

Учитывая, что поддержка Google Appspot HTTPS работает только для https://example.appspot.com (т. Е. Вы не можете настроить https://www.example.com с GAE), я хотел бы иметь решение Ajax, а именно:

  1. http://www.example.com обслуживает HTML и Javascript через http
  2. Ajax-запросы переходят через SSL на https://example.appspot.com

Мой вопрос / проблема заключается в следующем: как обеспечить, чтобы пользователи, вошедшие в систему http://www.example.com (посредством API пользователей Google ), передавали свои учетные данные для аутентификации через Ajax на * 1038? *

Это, кажется, нарушение той же политики происхождения (которая может или не может быть проблемой для API пользователей Google), так как узнать, какой пользователь вошел в example.com для запросов Ajax к примеру .appspot.com

Мысли, комментарии и отзывы весьма приветствуются.

Спасибо.

Brian

Ответы [ 4 ]

2 голосов
/ 07 августа 2009

Вы можете попробовать использовать JSONP , чтобы обойти это. Однако JSONP не имеет очень хорошего восстановления после ошибок, как JSON при вызовах XHR.

2 голосов
/ 06 августа 2009

Существуют способы обхода одного и того же источника, когда оба сайта сотрудничают, например, см. этот пост , но только метод проб и ошибок покажет, какие методы работают для ваших конкретных требований (это может зависеть от того, насколько строго пользователь установил меры безопасности в своем браузере, а также на сервере). сторонние реализации).

1 голос
/ 10 августа 2009

example.appspot.com не передает файлы cookie с example.com - вы не сможете идентифицировать пользователя, не выполнив вход в него также на example.appspot.com.

Вы, конечно, можете полностью отказаться от Google Authentication на example.appspot.com и реализовать свою собственную схему; вы можете добавить подпись и имя пользователя к запросам AJAX, которые вы создаете, и проверить эту подпись в вашем приложении App-Engine. если подпись действительна, просто примите пользователя, который был передан в качестве аутентифицированного пользователя, и представьте, что он вошел в систему.

1 голос
/ 07 августа 2009

Разве не было бы намного проще использовать фреймы? Подайте один полноразмерный набор фреймов с yourdomain.com, содержащий контент от https://yourapp.appspot.com/.

Обратите внимание, однако, что решение либо имеет проблему, при которой пользователи видят незащищенный сайт, а не защищенный.

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