2011-06-24 41 views
0

有沒有辦法拒絕直接訪問Facebook應用程序的應用程序服務器?Facebook應用程序:如何拒絕我的服務器上的直接訪問?

的Facebook通過加載一個IFRAME SRC = HTTP應用程序://應用程序域/,但可以清楚地查看網頁的源文件,並找出該域和複製URL粘貼到瀏覽器,並直接查看應用程序。

API中有這個signed_request和oauth_token,我想知道如何使用它,或者如果我可以使用它來限制對應用程序的直接訪問。

因此,如果用戶在瀏覽器中輸入您的應用程序的URL,他將被重定向到Facebook。

謝謝。

編輯: 我發現了一種方式,也可以使用表單提交。

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

這會重定向瀏覽器,而不是通過Facebook直接訪問應用程序。

+0

這現在解決了我:D感謝您的輸入! – petsoukos

回答

0

我發現了一種方式,也可以使用表單提交。 (對我的作品,它可能不適合你的工作。首先測試它。)

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

同時而不是直接訪問通過Facebook應用這重定向瀏覽器。

0

你需要一些Javascript來檢測你是否在Facebook的框架,如果你不是,重定向到它。

+0

如果用戶禁用JavaScript,該怎麼辦? – petsoukos

2

如果javascript被禁用,它將不起作用。

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

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

</script> 
相關問題