REST Framework 的用户认证组件
生活随笔
收集整理的這篇文章主要介紹了
REST Framework 的用户认证组件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?用戶認證流程:
我們要知道這個流程是怎么走的? 認證之后做的什么? 怎么認證?這三個條件
認證流程:就是使用BaseAuthentication這個模塊來做認證,判斷你登陸成功傳遞過來的隨機字符串是否存在
怎么認證: 如果存在就讓程序繼續下去 然后返回一個兩個參數的元組
認證之后 你以后的登陸用戶的username或者其他需要獲取的數據就從你返回的那個帶有兩個參數的元組中取出來,因為下民我們需要你返回的信息的時候
只能是登陸成功后才能使用 所以只有登陸成功后才能繼續下面的流程
?
?
其實用戶認證就是做了一個全局的認證?
首先我們要導入兩個模塊
from rest_framework.authentication import BaseAuthentication # 這個是限制用戶的信息 就是你驗證的時候必須要寫它里面的方法不然它的方法是返回錯誤的 所以你 必須要重寫 它的方法from rest_framework.exceptions import AuthenticationFailed # 這個是你的用戶認證出錯的時候返回額錯誤信息 和上面的BaseAuthentication 是一起匹配的 ?
?
?
BaseAuthentication 內部只是寫一個一個方法 這個方法是限制我們必須重寫 則會個方法的? 如果不重寫的話就會拋出一個錯誤
?
?
它規定我們只能寫這個方法? 必須寫不寫就拋出錯誤 然后我們再返回的也必須是元組? 然后元組的里面含有兩個值? 并且對應的取值是rquest.user,和reques.auth
?
?
from rest_framework.authentication import BaseAuthentication # 這個是限制用戶的信息 就是你驗證的時候必須要寫它里面的方法不然它的方法是返回錯誤的 所以你 必須要重寫 它的方法 from rest_framework.exceptions import AuthenticationFailed # 這個事你的用戶認證出錯的時候返回額錯誤信息 和上面的BaseAuthentication 是一起匹配的from app01 import models class LuffcityAuththentication(BaseAuthentication): # 然后繼承這個模塊def authenticate(self,request):'''用戶認證:param self::param request::return:'''token = request.query_params.get("token") # 1、你的事個體請求必須從query.params中取值 2、這個事對你的攜帶的token值給取出來方便下面的判斷 因為這個字符串是你的瀏覽器訪問的時候攜帶的所以就用get請求獲取的方式來得到信息token_obj = models.UserToken.objects.filter(token = token).first()if not token_obj: # 如果沒有這個token或者錯誤raise AuthenticationFailed({"code":88,"data":"登陸失敗"})# 驗證成功return (token_obj.user,token_obj) #返回的是一個元組 必須是一個元組里面兩個元素 返回的是對象名和對象本身 方便后面的取值?
?
你認證的時候如果是前后端分離的項目 最好是定的 隨機字符串來充當cookie這樣有助于取值,如果是用cooike獲取session你的邏輯就會很麻煩 所以就盡量使用隨機字符串來定義你的驗證信息
隨機字符串 用uuid
轉載于:https://www.cnblogs.com/zhaoyunlong/p/9478189.html
總結
以上是生活随笔為你收集整理的REST Framework 的用户认证组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gradle修改缓存路径 和 Gradl
- 下一篇: Django2.+ path配置