Facebook应用程序:如何拒绝在我的服务器上直接访问?

时间:2011-06-24 10:42:49

标签: facebook facebook-oauth

有没有办法拒绝为Facebook应用程序直接访问应用程序服务器?

Facebook通过iFrame src = http:// app-domain /加载应用程序,但您可以清楚地查看页面源并找出该域并将URL复制粘贴到浏览器中并直接查看应用程序。

API中有这个signed_request和oauth_token,我想知道如何使用它,或者我是否可以使用它来限制对应用程序的直接访问。

因此,如果用户在浏览器中输入您的应用程序的URL,则会将其重定向到Facebook。

谢谢。

编辑: 我发现了一种也适用于表单提交的方法。

// Signed request
$signed_request = $facebook->getSignedRequest();
if(!$signed_request) header("Location: " . $settings['appBaseUrl']);

这会直接访问应用程序而不是通过Facebook重定向浏览器。

3 个答案:

答案 0 :(得分:2)

如果禁用了javascript,它将无效。

<script type="text/javascript">
    var isInIFrame = (window.location != window.parent.location) ? true : false;

    if(!isInIFrame){
                window.location = 'link-of-application-page';
    }

</script>

答案 1 :(得分:0)

你需要一些Javascript来检测你是否在Facebook的框架中,如果不是,请重定向到它。

答案 2 :(得分:0)

我找到了一种也适用于表单提交的方法。 (对我有用,它可能不适合你。先测试一下。)

// Signed request
$signed_request = $facebook->getSignedRequest();
if(!$signed_request) header("Location: " . $settings['appBaseUrl']);

这会直接访问应用程序而不是通过Facebook重定向浏览器。