我在使用以下代码进行身份验证时遇到了一些问题。
我有一个页面,它为用户生成一个loginUrl,用于在Facebook上登录/验证我的应用程序:
<?php
$loginUrl = $facebook->getLoginUrl(array('scope' => 'publish_stream, read_friendlists, user_birthday', 'redirect_uri' => 'complete.php'));
?>
<div id="connect_facebook">
<a class="button" href="<?php echo $loginUrl; ?>">Connect to Facebook</a>
</div>我的complete.php有一个执行以下操作的脚本:
<script>
$(document).ready(function() {
pop_db();
});
function pop_db() {
$.post(
"pop_db.php",
function(data) {
alert(data);
}
);
}
</script>我的pop_db.php文件看起来像这样:
<?php
require_once('constants.php');
$response = array();
$user = $facebook->getUser();
if($user) {
try {
// make API calls
$response['code'] = "success";
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
$response['code'] = "failure";
$response['userID'] = $facebook->getUser();
$response['access_token'] = $facebook->getAccessToken();
}
echo json_encode($response);?>
constants.php有我的Facebook对象的秘密信息(它还创建了$facebook对象)。
我的问题是,当我使用"complete.php“作为重定向并尝试使用此jQuery异步执行API调用时,我得到的响应是userID =0(表示用户没有登录),但似乎我得到了一个有效的访问令牌。当我使用"pop_db.php“而不是"complete.php”作为重定向,因此不使用任何异步调用时,一切工作正常。
我是不是遗漏了什么?为什么它一直告诉我用户没有登录?
任何建议都是非常感谢的。
发布于 2012-12-27 00:54:58
谁有问题登录自己的网站通过脸书/整合脸书登录到他们的网站只需遵循给定的链接"http://developers.facebook.com/docs/howtos/login/server-side-login/#step2".It是一个非常好的链接,它可以解决你的问题肯定。
谢谢。巴那拉塔。
“
https://stackoverflow.com/questions/14026238
复制相似问题