Вход в Facebook на устройствах iOS через авторизованный портал

Я разрабатываю реализацию портала авторизации, которая будет использовать facebook для аутентификации пользователей. Пользователи должны будут иметь возможность войти в Facebook, чтобы пройти аутентификацию и получить свободный доступ в Интернет. Если пользователь не аутентифицируется, он не должен иметь возможность свободно просматривать facebook (или любой другой веб-сайт). Я использую javascript SDK.

У меня проблемы с этим потоком на устройствах iOS. Устройства iOS при подключении к ssid запускают псевдобраузер, в котором нет файлов cookie и сессий. На этой странице пользователь может нажать «Подключиться через Facebook». Это вызовет диалоговое окно входа в систему oauth. Ниже приведен фрагмент кода того, как это достигается: document.location = "https://www.facebook.com/dialog/oauth?client_id=" + WF_FB_APP_ID + "&response_type=token&scope=public_profile,email,user_birthday&redirect_uri=" + encodeURIComponent(document.location.href);

Когда пользователь вводит адрес электронной почты и пароль, вместо аутентификации пользователя facebook возвращает некоторый код ошибки: 200, описание ошибки «Ошибка разрешений» и причину ошибки «Пользователь отказано» и перенаправляет на Safari, где пользователю необходимо снова ввести учетные данные. На этом этапе ввод тех же учетных данных работает нормально, и пользователь получает доступ в Интернет.

Я хотел бы знать, почему кредиты не работают с первого раза и почему есть перенаправление на сафари. У устройств Andriod и Windows нет этой проблемы, поскольку пользователю необходимо открыть браузер, а процесс входа в систему через facebook отлично работает в браузере.

Есть ли какие-либо предложения, которые я могу попробовать? Я использую Meraki AP в облаке и поместил все возможные домены facebook в огороженный вход в сад. Я пробовал гуглить этот сценарий, но безрезультатно. Любая помощь или предложение попробовать будут высоко оценены.


person Sunaina Rn    schedule 14.04.2015    source источник
comment
Я предполагаю, что вы используете разрешение user_birthday, требующее одобрения. Это, вероятно, является причиной ошибки разрешений › Пользователь запрещен   -  person Bangdel    schedule 19.04.2015
comment
@Bangdel: Спасибо за ответ. Но я пробовал только запрашивать электронную почту в области действия, и она все равно выдавала ту же ошибку и не выполняла вход в систему.   -  person Sunaina Rn    schedule 20.04.2015
comment
Если у вас есть бизнес, вы можете рассмотреть Wi-Fi Facebook, может быть? facebook.com/help/126760650808045   -  person Bangdel    schedule 21.04.2015
comment
посмотрю, смогу ли я это использовать. Спасибо   -  person Sunaina Rn    schedule 22.04.2015


Ответы (1)


Я понимаю, что это старая тема, но мы только что столкнулись с одной и той же проблемой. Диалоговое окно входа в facebook появится в окне авторизованного портала, но как только вы нажмете «Войти», окно авторизованного портала закроется, и facebook откроется в обычном браузере, предлагая снова войти в систему.

После нескольких часов рвения на себе волос я понял, что происходит на самом деле. Мы используем точки доступа openmesh с openwrt. Эти устройства динамически добавляют IP-адреса доменов в конфигурацию окруженного стеной сада в iptables по мере выполнения запросов для этих доменов. Я еще не полностью разобрался в этом, но некоторые из сетевых доменов CDN, когда они занесены в белый список, позволяют получить доступ к IP-адресам доменов, используемых iOS для проверки доступа в Интернет.

Как только я удалил ссылки на akamaiedge.net, akamai.net, akamaitechnologies.com и cdnjs.cloudflare.com из своего закрытого списка, все заработало нормально. Полный сквозной вход в Facebook и перенаправление обратно на нашу целевую страницу остается внутри авторизованного портала.

На самом деле мы обнаружили ту же проблему на Android и во всем, что ссылается на домен gstatic.com. Android используетconnectioncheck.gstatic.com, если вы внесете в белый список что-нибудь вроде maps.gstatic.com или fonts.gstatic.com, авторизованный портал Android автоматически закроется до того, как ваша целевая страница загрузится.

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

Ваше здоровье

person Paul    schedule 22.12.2016