Кнопка входа в Facebook переадресовывается на пустую страницу на MS Edge
Эта проблема больше не проблема для меня. Facebook больше не позволяет вам делиться/публиковать фотографии в Интернете. Что касается проблемы с входом в систему, я не могу сказать, какое решение предложило решение проблемы, поскольку я больше не работаю над ней. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Я работаю над кнопкой входа в систему для обмена. Кнопка и функция обмена отлично работает в любом браузере, кроме MS Edge. Раньше он работал на Edge 25 (сейчас я на Edge 38).
Проблема в том, что когда я нажимаю кнопку входа в систему, появляется всплывающее окно входа в систему, в котором я могу ввести свои учетные данные. Как только они введены, и я пытаюсь войти, всплывающее окно не закрывается и перенаправляется на этот адрес:
https://www.facebook.com/v2.1/dialog/oauth?app_id=141515299765971&auth_type=&channel_url=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df2de29c1e9204f4%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener&client_id=141515299765971&display=popup&domain=ikeabuilds.sandbox3.2020.net&e2e=%7B%7D&locale=en_US&logger_id=80452c59-88a0-7681-0f2c-ac690c1d62b8&origin=1&redirect_uri=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df1aa391653df35c%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener%26frame%3Df7b23e2a9aa328&ref=LoginButton&response_type=none%2Ctoken%2Csigned_request&scope=publish_actions&sdk=joey&seen_revocable_perms_nux=false&version=v2.1
Я не считаю, вошли в систему тоже. Я много искал в Интернете и даже прочитал документацию по кнопке входа в систему и ничего не нашел, кроме того, что есть только один обходной путь. Он состоит из добавления URL-адреса facebook на доверенный сайт в настройках Windows. Это не жизнеспособное решение и, следовательно, не решение для меня. Изображения - это код html-страницы входа на Facebook, пустой страницы перенаправления и страницы, содержащей кнопку входа. У меня также есть страница .js, содержащая все функции, связанные с Facebook, но не умещается в одно изображение, при необходимости я предоставлю его. Что здесь происходит?
Кнопка входа в Facebook:
Ссылка для перенаправления:
HTML-код для страницы, содержащей кнопку входа в Facebook:
Ответы
Ответ 1
Из того, что я тестировал, я могу воспроизвести вашу проблему, но я не уверен, так ли это в вашей ситуации.
Такая же проблема возникает, когда MS Edge или IE блокирует всплывающие окна, и пользователь выбирает " Разрешить один раз " всплывающее окно, и когда всплывающее окно пытается перенаправить, вы получаете пустую страницу (она заблокирована).
Если вы выберете " Разрешить всегда ", всплывающее окно будет перенаправляться и закрываться правильно.
Что вы можете сделать, чтобы преодолеть это, фактически
- переадресация имени пользователя,
- пусть перенаправление помещает файл cookie в ваш домен
- используйте Facebook JS SDK и проверьте, подключен ли пользователь.
Итак, сначала включите переадресацию имени:
а затем выполните:
FB.init({
appId : 'APP_ID',
autoLogAppEvents : true,
cookie : true, // <-- use this
xfbml : true,
version : 'v3.0'
});
var uri = encodeURI('http://test.gr');
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log(response.status); // should log connected.
} else {
window.location = 'https://www.facebook.com/v3.0/dialog/oauth?client_id=APP_ID&redirect_uri='+encodeURI(uri)+'&display=popup&scope=user_status&response_type=token&version=v3.0';
}
});
Замените "test.gr" и "APP_ID" на свой домен и идентификатор приложения.
После перенаправления на ваш сайт, cookie с именем fbm_ {APP_ID} будет размещен для вашего домена, что позволит пользователю войти в систему.
Рекомендации
Ответ 2
Я думаю, вы должны оставить javascript SDK более настраиваемым решением, называемым ручным логином.
Вместо использования fb:login-button
вы можете написать свою пользовательскую кнопку следующим образом:
<a href="#" onclick="location.href='https://www.facebook.com/v3.0/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&state={state-param}'; return false;">Log-in to my app</a>
и настройте параметр redirect_uri
с URL-адресом html-страницы вашего приложения, которую вы можете обработать своим пользовательским кодом, например сообщение благодарности и тайм-аут с окном.close().