Я использую метод авторизации перенаправления Oauth для предоставления авторизации приложению iframe со вкладкой страницы.
Поток работает так:
- Пользователь загружает вкладку страницы (не авторизовано)
- Пользователь нажимает на ссылку авторизации
- Диалог авторизации занимает родительское окно
- Принятая авторизация перенаправляет мое приложение для регистрации учетной записи пользователя с использованием авторизованной электронной почты.
- Мое приложение перенаправляет обратно на вкладку страницы
- Загрузка вкладки страницы приводит к потере авторизации, и пользователь снова видит ссылку авторизации. Промыть, повторить, безуспешно.
Смущает, что приложение работает полностью, если вместо перенаправления на вкладку страницы Facebook я перенаправляю на любой путь в моем приложении (т. Е. В корневой каталог, на страницу пользователя и т. Д.). Только установив перенаправление на URL-адрес вкладки Facebook, пользователь может «загрузиться».
Даже странно, если я ограничу перенаправление для своего приложения, а просто загружу вкладку страницы Facebook, авторизация повсеместно уничтожается. Это означает, что после обновления facebook-page-load, загрузки приложения вне Facebook, пользователю будет предложено снова авторизоваться, и они фактически «выйдут» из моей системы.
Я использую Rails 3.0.1 с Devise 1.4.2 для учетных записей пользователей. Авторизация пользователя передается на регистрацию в Devise (мне нужно отслеживать пользователей в моем приложении - приложении на основе голосования). Devise использует «Поток на стороне сервера», подробно описанный здесь: http://developers.facebook.com/docs/authentication/
Я заблудился относительно того, что могло бы вызвать это. Фейсбук убивает аутентичный cookie? Это происходит?