作者:麥克煎蛋 出處:https://www.cnblogs.com/mazhiyong/ 轉載請保留這段聲明,謝謝!
在系統安全、身份驗證以及權限授權方面通常來說有各種各樣的處理方式,但大多都比較復雜。
在很多框架和系統里,涉及安全和身份驗證的工作往往都比較繁瑣,並且代碼量也巨大。
我們先簡單了解下常用的幾種安全機制。
OAuth2
OAuth2是一種協議規范,定義了幾種用來身份驗證和權限授權的處理方式。
它是一種可擴展的協議規范,涵蓋了幾種復雜的使用場景。並且包含了基於第三方身份驗證的處理方法。
我們常見的"使用微信登陸"、"使用QQ登陸"等登陸方式的底層技術就是基於OAuth2實現的。
OpenID Connect
OpenID Connect是另一種基於OAuth2的協議規范。它擴展了OAuth2的部分功能,讓以前相對模糊的功能變得可操作性更強。
例如,Google的登陸就是基於OpenID Connect實現的。
OpenAPI
OpenAPI是一套構建API的開放標准。FastAPI是基於OpenAPI構建而成。
OpenAPI支持以下幾種安全機制:
1、apiKey
:應用指定的key來自於
(1) 查詢參數
(2) header信息
(3) cookie信息
2、http:支持標准的http身份驗證系統,包括:
bearer
:頭信息Authorization的內容中帶有Bearer和token信息,繼承自OAuth2。
HTTP基本認證。
HTTP摘要認證。
其他。
3、
oauth2
4、openIdConnect
FastAPI通過引入fastapi.security
模塊,可以支持以上所有安全機制,並且簡化了使用方法。