Facebook дает предупреждение безопасности: пожалуйста, относитесь к URL выше, как вы бы свой пароль и не делитесь им ни с кем

я интегрировал Facebook с моим приложением для публикации контента. Он работал до версии 1.2 приложения, но теперь я получаю предупреждение системы безопасности сразу после входа, как показано ниже.

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

enter image description here

3 ответов


отключение безопасного просмотра не стоит, так как мы не можем заставить всех пользователей отключить безопасный просмотр.

Я решил.Проверьте мой ответ здесь. Побег из Facebook предупреждение безопасности


после долгого времени проводят в Интернете для поиска этой проблемы. Наконец я получил ответ.

войти в аккаунт Facebook > перейти Настройки Конфиденциальности > нажать на кнопку бирка на левой стороне страницы > потом отключить безопасный просмотр

теперь сбросить симулятор, а затем запустить приложение и снова войти он будет работать наверняка


короткий ответ заключается в том, что проблема может быть решена, если вы используете свой собственный redirect_uri, а не стандартный facebook. Когда возвращается маркер доступа, стандарт www.facebook.com/connect/login_success.html страница имеет таймер, который изменит URL-адрес, возможно, прежде чем ваше приложение сможет получить маркер доступа.

эта проблема может возникнуть в связи с задержкой интернета. У нас было два клиента сообщают о проблемах с этим в Мьянме и один в Великобритании. Никаких проблем для других. Предполагая, что вы разрешаете так:

https://www.facebook.com/v2.10/dialog/oauth?client_id=999999999999999&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=user_photos,user_events&display=popup

для redirect_uri по умолчанию (https://www.facebook.com/connect/login_success.html), facebook возвращает access_token в параметрах URL, но тело html для этой страницы содержит два таймера:

    Success <br/>
<b id="warning" style="display: none; color:red">
    SECURITY WARNING: Please treat the URL above as you would your password and do not share it with anyone. 
    See the <a href="http://l.facebook.com/l.php?u=xxxxxxx" target="_blank" data-lynx-mode="hover">Facebook Help Center</a> for more information.
</b>
<script type="text/javascript">
    document.domain = 'facebook.com';
    if (window == top) {
        setTimeout(function () { document.getElementById("warning").style.display = "block"; }, 2000);
    }
    setTimeout(function () { if (window.history.replaceState) { window.history.replaceState({}, "", "\/connect\/blank.html#_=_"); } }, 2000);
</script>

когда любой таймер срабатывает, он изменит URL, который удаляет access_token. Так что, если вы поймаете это до того, как это изменится, все будет работать. В нашем случае, мы использовали встроенный управление браузером под Windows и мониторинг перемещаемых ссылок. Пока код может получить событие навигации, содержащее access_token, прежде чем произойдет этот тайм-аут, все сработало. Мы никогда не могли определить, как задержка интернет-соединения и, возможно, какая-то комбинация медленного компьютера пользователя вызвала эту проблему, но это решило ее.

в настройках входа в Facebook для вашего приложения facebook добавьте свои собственные URI в список допустимых URI перенаправления OAuth. Если вы перенаправляете на свою собственную html-страницу, вы можете избежать тайм-аута facebook.