我有一個頁面,允許用戶使用Facebook API登錄。但當然,問題在於用戶更換頁面時,需要重新授權登錄。Facebook API會話難題
所以在我的主網頁我有
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxxxxx',
'cookie' => false,
));
$session = $facebook->getSession();
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$_SESSION['fb_session'] = $me;
$_SESSION['fb_session']['loginUrl'] = $facebook->getLoginUrl();
$_SESSION['fb_session']['logoutUrl'] = $facebook->getLogoutUrl();
$_SESSION['fb_session'] = array_merge($_SESSION['fb_session'], $session);
}
catch (FacebookApiException $e) {
error_log($e);
unset($_SESSION['fb_session']);
}
}
if ($_SESSION['fb_session']) {
$x = $facebook->api("/{$_SESSION['fb_session']['id']}");
print "<img src='https://graph.facebook.com/{$x['id']}/picture' />";
print "<a href='facebook_logout.php'></a>";
}
else {
$loginUrl = $facebook->getLoginUrl();
print "<a href='{$facebook->getLoginUrl()}'>Login to Post Comment</a>";
}
而且我facebook_logout.php
樣子:
header("location:" . $_SESSION['fb_session']['logoutUrl']);
unset($_SESSION['fb_session']);
現在的事情是我已經設置在第一次就會話時我驗證的用戶。但是如果他改變他的檔案會發生什麼。或者在他的API中禁止我的網站。
我已經用我的個人資料測試過了。當我允許它時,它工作正常。然而,當我從我的隱私設置中刪除應用程序我仍然看到我的照片和姓名等
下面是輸出到fb_session
[id] => id
[name] => Shahmir Javaid
[first_name] => Shahmir
[last_name] => Javaid
[link] => http://www.facebook.com/shahmirj
[about] => I was Born a n00b, I am still a n00b and il never be not a n00b.
[gender] => male
[locale] => en_GB
[verified] => 1
[updated_time] => 2010-11-22T15:45:22+0000
[loginUrl] => https://
[logoutUrl] => https://
[session_key] => xxx
[uid] => xxx
[expires] => 1290448800
[secret] => xxx
[access_token] => xxx
[sig] => xxx
我重新認證的UID,所以我的到期時間可以追溯到如何當然,沒有讓用戶重新登錄?
所有即時消息存儲是uid和名稱。個人資料圖片從'$ x = $ facebook-> api(「/ {$ _ SESSION ['fb_session'] ['id']}」);`但我的觀點是,dosent即將過期。而且我有點失去了關於deautorize回調url – 2010-11-22 16:22:02