我需要在金字塔的API和我認爲的oauth2將是很好的實現不是推倒重來,已經安裝pyramid_oauth2包,但不知道文檔或例子。有人知道任何好資源?一個github項目或oauth2服務提供商的東西會很好。pyramid_oauth2服務提供商文檔或實例
回答
如果你在談論我的包,這裏是從我的網站樣本。它仍然非常實驗性,但它應該與Facebook和其他一些oauth2提供商一起使用。不幸的是,twitter實際上只是oauth1.0,這是一個問題。
所以你需要包括pyramid_oauth2像
config.include('pyramid_oauth2')
或者config.ini文件中。
然後你就可以添加其他地方被列入配置後:
config.add_oauth2_provider(
Provider(
'vkontakte',
'client_id',
'client_secret',
'https://api.vk.com/oauth/authorize',
'https://oauth.vk.com/access_token'
)
)
這將創造/oauth/vkontakte/authenticate
的路徑。這是請求開始重定向流程的地方。然後它將重定向到authorize url
,並且它還會創建一個接收代碼的/oauth/vkontakte/callback
。然後它將該代碼發送回access_token
路徑。
如果有什麼不工作可隨意報告一些問題,可以發送額外的參數到Provider
的構造函數,如作用域等。此時這些參數將發送到服務器的所有請求。
哦,你必須爲提供者提供一個回調函數。我會用一個回調等
如果它仍然是不明確的,我可以與Facebook一小示例應用程序,並在今天或明天推在github的例子更新了答案。
該回調只是一個可調用的接收request
和data
,訪問令牌應包含在數據中。
我記住,你如何獲得訪問令牌應該是直截了當的,一旦你收到訪問令牌,應該可以執行一些標準回調來註冊一個oauth api等等。我相信不是每個人都只是在爲像Facebook連接等網站進行身份驗證纔會尋找oauth。有人可能有興趣使用access_token不僅僅是auth。此外,由於金字塔不是關於sqlalchemy和其他數據庫,它不強制執行任何操作。換句話說,用ZODB實現它,SQLAlchemy應該很容易。
我相信流動實際上是非常簡單的,我沒有實際(我猜)實施的oauth2但正確的當前客戶端流量。某些屬性缺失,如grant_type等。它們可以作爲額外的參數傳遞,但取決於oauth2服務器,它可能無法在任何地方正常工作。
順便說一句,我在找供應商添加到ini文件,使他們可以從那裏而不是在代碼中加載。這樣,你就可以保持開發不同的應用程序,督促等
- 1. 擴展服務提供商(提供商)
- 2. Webhook服務提供商或項目
- 3. AngularJS,工廠,提供商或服務
- 4. 實施oauth 1.0a(服務器/提供商)
- 5. 在服務提供商或身份提供商處導入sp.xml文件
- 6. C++服務提供商
- 7. Laravel 5.2 +服務提供商
- 8. 電話服務提供商
- 9. J2ME Web服務提供商
- 10. 服務提供商框架
- 11. Laravel - $ _ENV服務提供商
- 12. 在Autofac中實現通用服務工廠或提供商
- 13. Fedlet服務提供商和CA Siteminder身份提供商
- 14. Nhibernate.Search無法實例目錄提供商
- 15. ES2015 Knockout.js組件的Singleton或服務提供商或模塊
- 16. 提供一個提供商的單個實例爲組件
- 17. WSO2作爲服務提供商
- 18. CodeIgniter OAuth 2服務器/提供商
- 19. 窗口服務DbResource提供商
- 20. WCF數據服務提供商
- 21. 鏈接服務器提供商問題
- 22. SAML服務提供商安全
- 23. DDOS代理服務提供商
- 24. ASP.NET Web API:OAuth服務提供商
- 25. 服務提供商和OSGI問題
- 26. 動態加載服務提供商
- 27. 模擬服務提供商 - Laravel 5.4
- 28. 內容提供商vs服務
- 29. SAML - Java中的服務提供商
- 30. Angularjs未知服務提供商
感謝包,不錯的工作,感謝您的詳細答覆,但我猜這是客戶端...,我的意思是服務器一邊,我正在做的API,我發現最接近的文章是這一個:http://philipsoutham.com/post/2172924723/two-legged-oauth-in-python – 2012-08-03 15:47:23
請記住,python-oauth2實際上是一個oauth1.0包,據我所知。它被稱爲2,因爲它是python-oauth的替代品。在我閱讀文檔後,我沒有發現oauth2的任何內容,這就是爲什麼我在上面創建了這個包。不能全時工作,但可能很快就會做,因爲我可能很快需要一個oauth2服務器 – 2012-08-09 10:38:25
我剛剛閱讀這篇有趣的文章,你應該看看,如果不是已經:http://pydanny.com/the-sorry- state-of-python-oauth-providers.html,也許有些人也可以在項目 – 2012-08-10 14:40:50