2
A
回答
4
這在hybridauth用戶手冊與下面的代碼解釋:
// get the stored hybridauth data from your storage system $hybridauth_session_data = get_sorted_hybridauth_session($current_user_id);
Get_sorted_hybridauth_session是你的內部函數來獲取存儲的數據。 它不也罷,你在一個表中的數據存儲在一個名爲「external_token」什麼的領域,通過普通的SQL查詢得到它,然後只需將其提供給以下功能:
// then call Hybrid_Auth::restoreSessionData() to get stored data $hybridauth->restoreSessionData($hybridauth_session_data); // call back an instance of Twitter adapter $twitter = $hybridauth->getAdapter("Twitter"); // regrab te user profile $user_profile = $twitter->getUserProfile();
$ hybridauth-> restoreSessionData($ hybridauth_session_data);將恢復序列化會話對象,然後它將獲得適用於保存的任何提供者的適配器。最好的辦法就是在同一個數據庫表中保存提供者名稱(在這種情況下是Twitter),並使用類似external_provider的東西,然後通過sql auery獲取它並將其提供給getAdapter函數。這應該做你需要做的事情。
手動例子如下:
http://hybridauth.sourceforge.net/userguide/HybridAuth_Sessions.html
=============
作爲一個額外的信息 - 我在我的測試中看到的是,節約以這種方式的會話不會阻止hybridauth登錄用戶,即使用戶在此期間已從應用程序中撤銷了訪問權限。也就是說,如果用戶已經登錄並獲得授權,但是單獨進入應用並撤消訪問權限(例如google),hybridauth仍然會將用戶登錄到系統。我目前正試圖找到一種方法來確保用戶也登錄到遠程系統。
3
晚了,但我認爲這將有助於:
下面的代碼驗證,並從HybridAuth那些提供商的用戶沒有真正登錄到:
$providers = $this->hybridauthlib->getConnectedProviders();
foreach($providers as $connectedWith){
$p = $this->hybridauthlib->getAdapter($connectedWith);
try {
$p->getUserProfile();
} catch (Exception $e) {
$p->logout();
}
}
相關問題
- 1. Hybridauth中的替代訪問令牌
- 2. Hybridauth LinkedIn API - 無效令牌問題
- 3. 如何恢復Facebook桌面應用程序的訪問令牌?
- 4. 訪問令牌?
- 5. 訪問令牌
- 6. 重複使用OAuth訪問令牌
- 7. FB訪問令牌
- 8. KeyError:訪問令牌
- 9. Facebook訪問令牌
- 10. Instagram訪問令牌
- 11. OAuthRequestValidator訪問令牌和訪問令牌密鑰
- 12. JTwitter訪問令牌和訪問令牌的祕密
- 13. 獲取用戶訪問令牌facebook訪問令牌節點
- 14. oauth訪問令牌以獲得新的訪問令牌
- 15. facebook用戶訪問令牌與應用訪問令牌
- 16. 使用外部訪問令牌或本地訪問令牌
- 17. Facebook訪問令牌問題
- 18. Facebook訪問令牌問題
- 19. 在facebook API中刷新令牌和訪問令牌
- 20. 在oAuth2中竊取訪問令牌
- 21. Grafana在URL中傳遞訪問令牌
- 22. 在JSON中訪問子令牌
- 23. 在angularJS中處理訪問令牌
- 24. 在Bigcommerce中生成訪問令牌
- 25. 在C#中訪問JSon原始令牌?
- 26. 在ADFS中訪問原始令牌
- 27. ANTLR - 在c/C++中訪問令牌值
- 28. 在ruby中獲取訪問令牌foursquare
- 29. 在Loopback中設置訪問令牌Cookie?
- 30. 在OAuth2中獲取訪問令牌