我對LinkedIn的spring-social-api有一些麻煩。 60天后訪問令牌過期,我無法使用它在訪問令牌用戶的時間線上發佈。有一種方法可以通過這個錯誤?Linkedin刷新訪問令牌
回答
重複我的回答從http://forum.springsource.org/showthread.php?138943-Linkedin-refresh-accesstoken:
雖然我不能誠實地說,我和LinkedIn試了一下,你應該能夠獲得(通過ConnectionRepository)連接和調用刷新()就可以了。事實上,這應該可以與任何OAuth2安全的API一起使用(除了那些不被OAuth2規範玩的Facebook)。
我還沒有試用過LinkedIn,因爲直到最近Spring Social還通過他們的OAuth 1.0a認證與LinkedIn合作。但是這聽起來像是一件好事。
因此,Spring Social支持刷新訪問令牌。但是,(1)捕獲ExpiredAuthorizationException,(2)使用ConnectionRepository來獲取Connection,以及(3)調用refresh()來更新連接,這是您的人工努力。
更令人敬畏的是,如果Spring Social以某種方式爲您捕獲ExpiredAuthorizationException,自動調用refresh(),然後重新嘗試觸發異常的調用;使呼叫者無縫。這是我一直在琢磨的事情,但目前還沒有實施。
一個可能的解決方案是一個方面。但是它需要由開發人員配置以正確包裝應用程序正在使用的任何API綁定類型(例如LinkedInTemplate)。我正在考慮的另一個選項是挖掘AbstractOAuth2ApiBinding並配置它公開的RestTemplate來處理該異常。它是否可以工作有點不確定,但是如果它確實起作用,那麼任何擴展了AbstractOAuth2ApiBinding的API綁定都會自動獲得刷新功能......除了那些沒有使用OAuth2規則的Facebook,再一次。
- 1. 刷新LinkedIn訪問令牌自動
- 2. 使用Scribe刷新LinkedIn訪問令牌
- 3. LinkedIn API OAuth刷新令牌
- 4. 刷新linkedin用戶訪問令牌,無需用戶干預
- 5. LinkedIn API - 刷新訪問令牌後60天 - PHP
- 6. 生成LinkedIn訪問令牌
- 7. 刷新訪問令牌後彈出OAuth2刷新令牌
- 8. 在到期前刷新LinkedIn令牌omniauth
- 9. 如何刷新LinkedIn授權令牌
- 10. 問題與訪問和刷新令牌
- 11. 如何使用linkedin-j更新linkedin oauth訪問令牌?
- 12. OAuth 2請求新的訪問令牌使用刷新令牌?
- 13. 使用刷新令牌獲取新的訪問令牌adal js
- 14. 使用個人api的刷新令牌更新訪問令牌
- 15. 支持自動刷新訪問令牌?
- 16. 訪問/刷新令牌的使用
- 17. 無法刷新訪問令牌 - 黑莓
- 18. Yii2刷新Facebook的訪問令牌
- 19. accountmanager刷新令牌(離線訪問)
- 20. 使用刷新令牌訪問Box Api
- 21. OAuth訪問令牌和頁面刷新
- 22. 如何使用我的刷新令牌刷新我的google_oauth2訪問令牌?
- 23. 如何從linkedIn獲取訪問令牌
- 24. 無法檢索訪問令牌linkedin api
- 25. get linkedin使用JavaScript SDK訪問令牌
- 26. linkedin oauth請求訪問令牌
- 27. LinkedIn - 如何獲取訪問令牌?
- 28. 無法使用刷新令牌獲取訪問令牌
- 29. 請求具有過期刷新令牌的訪問令牌
- 30. 使用刷新令牌生成訪問令牌的查詢
在這裏檢查文檔我認爲LinkedIn的「刷新」訪問令牌的機制實際上與原始授權過程相同。看起來他們沒有提供刷新令牌,可以通過後端API調用來獲得新的訪問令牌。 refresh()不會處理這種情況,會嗎?看起來你必須確保定期通過授權流程發送用戶來維護一個新的令牌。 http://developer.linkedin.com/documents/handling-errors-invalid-tokens – sdouglass
沒錯。在我寫這個答案後,我意識到LinkedIn不會實現刷新令牌,而是要求您再次通過授權流程(Facebook也是這樣做的)。這與規範有所不同,有點令人討厭,但這種方式可以說更安全。無論如何,Spring Social的ReconnectFilter應該能夠完美地處理這種情況。它現在可以在Spring Social 1.1.0.M3中找到。 –