2011-10-25 34 views
3

我有一種情況,我創建自己的會話變量,而用戶登錄到我的應用程序。 每當我的用戶我的應用程序註銷,清除我自己的會話,然後調用FB註銷也..如何刪除我們的應用程序會話時,用戶從Facebook畫布頁面註銷?

$facebook = new Facebook(array(
'appId' => $this->key, 
'secret' => $this->secret, 
)); 
$logoutUrl = $facebook->getLogoutUrl(array('next' => my url)); 
Yii::app()->request->redirect($logoutUrl); 

不過,雖然我的用戶去通過畫布中應用程序,如果他們從Facebook註銷本身那麼我無法追蹤他們何時退出Facebook。所以我的會話值保持在那裏,當我再次登錄與其他用戶,舊的會話在活着。

我該如何處理?有什麼方法可以找出用戶從Facebook註銷的事件嗎?我也可以刪除我的會話?

回答

2

舊會話導致什麼問題?通常我不會指望登錄爲不同的用戶造成即使從另一個用戶以前的會話仍然存在任何問題,因爲記錄的再次行動將「重啓」與那些屬於新用戶的任何會話值。或者,如果更簡單,登錄行爲將清除任何現有會話並開始新會話。

對於畫布訪問,通常應該使用類似的東西。在這種情況下,接收signed_request參數可被視爲新的登錄操作,清除舊的會話值或至少檢查它們是否與當前用戶匹配。

如果一些其他問題正在被掛(如作爲連接誰真的沒有也許人們展示),那麼你可能需要實現一個週期性的過程,清除了會話基於某些活動閾值會話引起的。這不是優雅的,但它是唯一的方法來抓住用戶沒有註銷,而只是關閉他們的瀏覽器。

0

對不起你們,我不能寫上面的答案評論,但它如何適用於那些身份驗證Cookie保存在客戶機上的場景?

例如,我有與會話過期一個.net身份驗證Cookie,但應該的Facebook的用戶註銷時,cookie將保留,而一些功能已在此建成。我知道它是一個異常點,但仍然相關。

相關問題