Django rest framwork獲取token值和前端token攜帶方法


在進行用戶校驗時,有多種方法:

1、Cookie:默認可以通過腳本文件獲取,容易遭受XSS攻擊(跨站腳本攻擊);所有瀏覽器會讓用戶自願選擇是否存儲至cookie。

2、Session:session會在一定時間內保存在服務器上;當訪問增多,會比較占用你服務器的性能。

3、Token:在登錄時會發放Token,類似於“身份證”,在一些發送要權限校驗的請求時,在請求頭帶上Token即可通過驗證。特點:方便、安全。

在Django rest framwork中 獲取token的方式:

首先需要在python manage.py 依次 makemigrations 和migrate ,

此做法是需要將django的后台管理操作的對應表遷移到數據庫(mysql的遷移表如下):

 其中 authtoken_token會給auth_user中的用戶登錄時發一個獨有的Token,

前端登錄時,需要請求Token的url為:

需要注意的是一定是POST請求,當然了 賬號密碼一定要對,需要在auth_user中相對應數據;

在前端使用sessionStorage將Token儲存下來:

登出時sessionStorage.removeItem('token'),清空token。

使用ajax提交時:

Token放在ajax的請求頭 headers中 且需要聲明如下圖

在后台進行登錄判斷的具體代碼:

request.user.is_authenticated會校驗用戶返回是否登錄的布爾值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM