Можно ли использовать FB Connect в iframe на стороннем сайте? - PullRequest
1 голос
/ 30 сентября 2011

У меня есть iframe на стороннем сайте. Внутри iframe находится мое приложение, которое пользователи аутентифицируют, используя FB Connect. Я использую гем omniauth на своем сайте Ruby on Rails для обработки соединения с Facebook.

Это работает без проблем, если а) вы уже вошли в FB и б) вы уже разрешили моему сайту использовать ваши данные.

Если что-то из этого отсутствует - в тот момент, когда FB connect обращается к Facebook - все останавливается, и я получаю логотип FB и ссылку для перехода на Facebook. Когда я нажимаю на ссылку - она ​​выводит меня из моего фрейма в Facebook. Очевидно, что как только я вернусь - больше нет фрейма, к которому можно вернуться, и я больше не на стороннем сайте, а на моем.

Должна ли эта техника быть возможной? И если так - где я могу пойти не так? Как я уже сказал - если а) и б) выполнены - это работает без проблем.

1 Ответ

1 голос
/ 30 сентября 2011

Вы не можете выполнить перенаправление на Facebook изнутри iframe, его необходимо загрузить на страницу верхнего уровня. Вот почему вы видите логотип FB и ссылку, это там, чтобы вызвать прорыв структуры iframe. Если вы хотите избежать этого промежуточного шага, убедитесь, что вы делаете перенаправление верхнего уровня самостоятельно (обычно путем вывода некоторого кода javascript, который устанавливает top.location).

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

...