Django DRF認(rèn)證組件的流程是什么?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過(guò)這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
視圖函數(shù)中加上認(rèn)證功能,流程見下圖
import hashlib import time def get_random(name): md = hashlib.md5() md.update(bytes(str(time.time()),encoding='utf-8')) md.update(bytes(name,encoding='utf-8')) return md.hexdigest() from rest_framework.views import APIView class Login(APIView): authentication_classes = [AuthLogin] def post(self, request, *args, **kwargs): response = {'status': 100, 'msg': None} name = request.data.get('name') pwd = request.data.get('pwd') user = models.User.objects.filter(name=name, password=pwd).first() if user: response['msg'] = '登陸成功' # 隨機(jī)字符串可以是用戶名加當(dāng)前時(shí)間生成的mds token = get_random(name) # 如果有記錄,就只需要更新,不需要重新插入 # models.UserToken.objects.create(token=token,user=user) # 查詢 更新 # user_agent models.UserToken.objects.update_or_create(user=user, defaults={'token': token}) response['token'] = token else: response['status'] = 101 response['msg'] = '用戶名或密碼錯(cuò)誤' return Response(response)