我刚刚把一个快速的Facebook iFrame“fangate”应用程序拼凑在一起,你必须“喜欢”显示一个页面。
我已经看过很多在线做事方式,所以我只是想在发布应用程序之前检查一下我的方法是否安全。
..和代码......:
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => "__CODE_HERE__",
'secret' => "__CODE_HERE__",
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
if($signed_request != false){
if($signed_request["page"]["liked"]) {
echo "you LIKE this page now!!";
} else {
// User likes the fan page.. display restricted data.
include 'index.php';
}
}
else
{
header('LOCATION: http://www.facebook.com/');
}
?>
你们觉得怎么样?这看起来非常安全,这是我遇到过的最常见的方法。你还包括其他什么吗?
欢迎所有反馈.. :)
- 康纳
答案 0 :(得分:1)
我看不出有任何问题。我见过类似的解决方案。
答案 1 :(得分:1)
我不会为此加载整个PHP-SDK ,而是使用文档中的方法:
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["page"]["liked"])) {
echo "You are not a fan!";
} else {
echo "Welcome back fan!";
}
我写了tutorial关于此问题,并提供了一个真实世界的例子,说明了这一点。