2012-10-30 62 views
6

我已經使用HybridAuth在我的Facebook應用程序中授權用戶,並將他的access_token存儲在我的數據庫中。使用HybridAuth'Offline'訪問

幾天後,當用戶不在線時,我想讓他的新Facebook朋友也使用HybridAuth。

我可以從他的access_token'重新創建'該用戶以獲得他的朋友,發送通知等嗎?

謝謝!

回答

7

我終於找到了一個可行的黑客攻擊,我將把它留在這裏供下一個尋找它的人使用。如果你確定你的用戶和應用程序有一個有效的令牌,HybridAuth不應該嘗試重定向或返回任何錯誤

(我使用Codeigniter,但將其翻譯爲「純」的HybridAuth應該很簡單:

$token = "GET A TOKEN IN Facebook's API EXPLORER"; 
    $this->load->library('HybridAuthLib'); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.is_logged_in", 1); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.token.access_token", $token);   
    $service = $this->hybridauthlib->authenticate('Facebook'); 

    if ($service->isUserConnected()){ 

     $user_profile = $service->getUserProfile(); 
     $contacts = $service->getUserContacts(); 
     $access_token = $service->getAccessToken(); 

     var_dump($user_profile); 
     var_dump($contacts); 
     var_dump($access_token); 

    }else{ 
     echo "something went wrong"; 
    } 
+0

你不是覆蓋當前用戶的OAuth的令牌登錄(即一個正在查看配置文件頁面)?或者您可能只是在內部爲HybridAut設置訪問令牌h操作? IIRC'authenticate()'方法在完成時爲用戶設置會話數據 - 是不是會導致Web應用程序中的主要安全漏洞?澄清可能有所幫助;我正面臨類似的問題。謝謝 – Abdulaziz

+0

我正在使用服務器端進程(由cron處理),用於異步發佈存儲在數據庫中的操作,沒有用戶登錄 - 用戶無法訪問。如果它將通過瀏覽器訪問,則行爲將是您所說的行爲 – Marc

+0

我用它來處理通過JavaScript界面​​檢索到的令牌。它也適用於其他社交提供商,例如google plus等。非常感謝您的發佈。 – Lucia