Facebook提供安全警告:请将您的密码视为上述URL,不要与任何人共享

时间:2013-04-19 12:54:40

标签: iphone ios facebook ipad

我已将Facebook与我的应用程序集成以发布内容。它一直工作到应用程序的1.2版本,但现在我刚刚登录后收到安全警告。

关于这个安全警告的奇怪之处在于它适用于我的一个Facebook帐户而没有像以前那样的任何警告,但我在我的其他帐户中收到此警告。我附上了一个问题的屏幕截图:

enter image description here

3 个答案:

答案 0 :(得分:3)

禁用安全浏览是不值得的,因为我们无法让所有用户禁用安全浏览。

我确实已经解决了。请在这里查看我的答案。 Escape from Facebook security Warning

答案 1 :(得分:1)

花了很长时间在互联网上搜索这个问题。最后我得到了答案。

登录Facebook帐户>转到隐私权设置>点击页面>左侧的左侧的安全标记然后禁用安全浏览

现在重置你的模拟器,然后运行应用程序并再次登录它肯定会起作用

答案 2 :(得分:0)

简短的回答是,如果您使用自己的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会返回URL参数中的access_token,但该页面的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>

当任一计时器触发时,它将更改删除access_token的URL。所以只要你在变化之前就抓住它,一切都会奏效。在我们的例子中,我们在Windows下使用嵌入式浏览器控件并监视导航链接。只要代码在此超时发生之前可以接收包含access_token的导航事件,那么一切都有效。我们永远无法确定互联网连接的延迟以及用户慢速计算机的某些组合是如何导致此问题的,但这解决了这个问题。

在您的Facebook应用的Facebook登录设置中,将您自己的URI添加到有效OAuth重定向URI列表中。如果您重定向到自己的html页面,那么您可以避免Facebook超时。