1. 程式人生 > 實用技巧 >oauthlib-一款通用且完整的實現OAuth請求籤名邏輯python庫

oauthlib-一款通用且完整的實現OAuth請求籤名邏輯python庫

OAuth通常看起來很複雜且難以實現。有一些著名的庫可以處理OAuth請求,但是它們都具有以下一種或兩種特性:

它們早於OAuth 1.0規範AKA RFC 5849。

它們早於OAuth 2.0規範AKA RFC 6749。

他們假定使用特定的HTTP請求庫。

OAuthLib是一個框架,可在不假設特定HTTP請求物件或Web框架的情況下實現OAuth1或OAuth2的邏輯。使用它可以將OAuth客戶端支援移植到您喜歡的HTTP庫上,或將支援移植到您喜歡的Web框架上。如果您是此類庫的維護者,請在OAuthLib之上編寫一個薄薄的單板並以很少的努力獲得OAuth支援。

支援哪些Web框架?

以下軟體包使用OAuthLib提供了OAuth支援。

對於Django,有django-oauth-toolkit,其中包括Django REST框架支援。

對於Flask,有flask-oauthlib和Flask-Dance。

對於Pyramid,有pyramid-oauthlib。

對於Bottle有bottle-oauthlib。

如果您編寫了支援您喜歡的框架的OAuthLib軟體包,請更新文件。

FAQ

1.如何將OAuthlib用作Django,Flask和其他Web框架的提供程式?

提供程式可以在任何Web框架中實現。但是,其中一些庫具有立即可用的庫來幫助整合:具體參考上方的內容。

對於其他框架,請通過開啟GitHub問題或在Gitter OAuthLib社群上進行聯絡。

2.身份認證和授權有什麼區別?

認證

身份驗證可驗證您的身份。例如,您可以使用ssh客戶端登入到Unix伺服器,或者使用POP3和SMTP客戶端訪問電子郵件伺服器。通常,PAM(可插拔身份驗證模組)用作高階應用程式程式設計介面(API)中的低階身份驗證方案,從而允許依賴於身份驗證的程式獨立於基礎身份驗證方案編寫。

授權

授權會驗證您有權執行的操作。例如,允許您通過ssh客戶端登入Unix伺服器,但無權訪問瀏覽器/ data2或任何其他檔案系統。成功進行身份驗證後,將進行授權。可以在檔案系統級別或使用各種應用程式級別的配置選項(例如chroot(2))來控制授權。

通常,連線嘗試必須由系統進行身份驗證和授權。通過這兩個因素,您可以輕鬆找出為什麼接受或拒絕連線嘗試的原因。

3.簡而言之,OAuth 1和2之間的最大區別是什麼?

OAuth 2更簡單,因為它需要使用TLS,而OAuth 1則需要在沒有TLS的情況下安全地工作。要確保沒有TLS OAuth 1的安全性,需要對每個請求進行簽名,這可能很麻煩。

獲取模組

標準安裝

標準安裝包含OAuthLib的核心功能,可以通過下載原始檔手動安裝:OAuthLib模組下載

為了降低其要求,標準安裝中不包括RSA公鑰加密所需的Python軟體包。

帶有RSA的附加功能

為了支援使用RSA公鑰加密的功能,還必須安裝PyCA的 加密軟體包和PyJWT軟體包。這可以通過安裝OAuthLib的核心功能以及“ signedtoken”附加功能來完成。

pip install 'oauthlib[signedtoken]'