我實作了一個 Web 應用程式(使用 Python Django - 在重要的程度上)。用戶可以使用用戶名和密碼正常登錄,但另外我想提供一個 API,用戶可以使用它來撰寫與我的網站互動的腳本。
對于 API 身份驗證,我的計劃是執行以下操作:
- 在資料庫中,我使用“令牌”創建表 - 即指向用戶資料庫的隨機字串。
- 用戶得到一個令牌字串。
- 對于每個 API 呼叫,用戶將令牌字串與他們的請求一起傳遞
在 API 實作中,代碼:
- 驗證令牌。
- 以匹配令牌的用戶身份登錄正確的用戶并執行 API 函式。
- 再次注銷用戶。
- 回傳結果
這有意義嗎?一方面它看起來很簡單 - 另一方面感覺很自制,我聽說過的東西在涉及安全相關主題時不推薦?
uj5u.com熱心網友回復:
我會全心全意地建議看django-rest-framework
https://www.django-rest-framework.org/
它確實做到了所有這些以及更多!
不,不是銷售人員,只是開發人員 :)
它幾乎可以處理您能想到的任何用例,我很樂意詳細討論它不適合的任何用例。
它處理:
- 驗證
- 決議
- 編碼
- 查看或物件級權限
- 物件序列化
- 物件創建
- 物件洗掉
- 自動生成的檔案
- 幾種身份驗證方法,包括自定義托管方法
- 還有一堆其他的東西讓在 Django 中撰寫 API 變得更加容易
總而言之,它支持大多數(如果不是全部)用例。
編輯
值得注意的是,DRF 擁有短暫的訪問令牌是有充分理由的。那是因為安全。
假設一個惡意行為者獲取了您的短期訪問令牌,這比您描述的“長壽”令牌要好得多。
值得權衡安全性和易于訪問性,安全性和保護您的用戶始終是最重要的。
此外,我建議看一下 DRF Knox,它在 DRF 檔案的身份驗證部分推薦:
https://github.com/James1345/django-rest-knox
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527503.html
標籤:django验证
