zoukankan      html  css  js  c++  java
  • rest_framework 认证系统

    def get_random_str(user):
        import hashlib,time
        ctime=str(time.time())
    
        md5=hashlib.md5(bytes(user,encoding="utf8"))
        md5.update(bytes(ctime,encoding="utf8"))
    
        return md5.hexdigest()
    
    
    class Login2(APIView):
        # def get(self, request):
        #     return render(request, 'login2.html')
    
        def post(self, request):
    
            res = {'code':1000,'msg':None}
            try:
                user = request.data.get('user')
                pwd = request.data.get('pwd')
                user_obj = User.objects.filter(user=user,pwd=pwd).first()
                print(user,pwd,user_obj)
                if not user_obj:
                    res['code'] = 1001
                    res['msg'] = '用户名或密码错误'
                else:
                    token = get_random_str(user)
                    UserToken.objects.update_or_create(user=user_obj, defaults={"token": token})
                    res['token'] = token
    
            except Exception as e:
                res['code'] = 1002
                res['msg'] = str(e)
    
            return JsonResponse(res, json_dumps_params={"ensure_ascii": False})

    上面的认证系统是根据源码自己写的逻辑 

    下面我们就先来看看源码

    from app01.models import UserToken
    
    from rest_framework.exceptions import AuthenticationFailed
    
    from rest_framework.authentication import BaseAuthentication
    
    class TokeAuth(BaseAuthentication):
    
        def authenticate(self, request):
    
            token = request.GET.get("token", None)
            print(token)
    
            token_obj = UserToken.objects.filter(token=token).first()
            if token_obj:
                return token_obj.user.user,token_obj
            else:
                raise AuthenticationFailed('认证失败!')

    以上就是rest_framework提供的 认证 

     

  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/yftzw/p/9417922.html
Copyright © 2011-2022 走看看