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

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

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

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

三、Token:在登陸時會發放Token,相似於「身份證」,在一些發送要權限校驗的請求時,在請求頭帶上Token便可經過驗證。特色:方便、安全。ajax

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

首先須要在python manage.py 依次 makemigrations 和migrate ,數據庫

此作法是須要將django的後臺管理操做的對應表遷移到數據庫(mysql的遷移表以下):django

 其中 authtoken_token會給auth_user中的用戶登陸時發一個獨有的Token,瀏覽器

前端登陸時,須要請求Token的url爲:安全

須要注意的是必定是POST請求,固然了 帳號密碼必定要對,須要在auth_user中相對應數據;服務器

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

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

使用ajax提交時:

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

在後臺進行登陸判斷的具體代碼:

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

相關文章
相關標籤/搜索