rest_framework认证组件

rest_framework认证组件

import uuid
from rest_framework.exceptions import AuthenticationFailed

# 认证组件
class Authortication: def authenticate(self,request): # authenticate名字不能变 token = request.GET.get("token") user = models.Token_user.objects.filter(token=token).first() if user: return None else: raise AuthenticationFailed("您还没有登录") def authenticate_header(self, xx): pass
# 需要被装饰认证的方法 class Books(APIView): # authentication_classes 变量名不能变 = [ "装饰类的名字" ] authentication_classes = [ Authortication ] # 哪里需要装饰认证写上 def get(self,request): return Response("您已经登陆了")

class Login(APIView): def post(self, request, *args, **kwargs): response = {"status": 100, "msg": "登陆成功"} name = request.data.get("name") pwd = request.data.get("pwd") user = models.User.objects.filter(name=name, pwd=pwd).first() if user: # 登陆成功生成token str = uuid.uuid4() # 表示去数据库查,查到了更新,没查到插入数据 models.Token_user.objects.update_or_create(user=user, defaults={"token": str}) else: response["msg"] = "账号或密码错误" return Response(response) def get(self, request, *args, **kwargs): pass

猜你喜欢

转载自www.cnblogs.com/liu--huan/p/10610715.html