zoukankan      html  css  js  c++  java
  • django认证

    from rest_framework.authentication import BaseAuthentication
    from api import models
    from rest_framework import exceptions
    
    
    class GeneralAuthentication(BaseAuthentication):
        """
        通用认证,如果认证功能则返回数据,认证失败自己不处理,交给下一个认证组件处理。
        """
        def authenticate(self, request):
            token = request.META.get('HTTP_AUTHORIZATION', None)
            # 1.如果用户没有提供token,返回None(我不处理,交给下一个认证类处理,则默认是None)
            if not token:
                return None
            # 2.token错误,,返回None(我不处理,交给下一个认证类处理,则默认是None)
            user_object = models.UserInfo.objects.filter(token=token).first()
            if not user_object:
                return None
            # 3.认证成功
            return (user_object,token) # request.user/request.auth
    
    
    class UserAuthentication(BaseAuthentication):
        """
        用户认证,用户必须先登录。
        """
        def authenticate(self, request):
            token = request.META.get('HTTP_AUTHORIZATION', None)
            # 1.如果用户没有提供token,返回None(我不处理,交给下一个认证类处理,则默认是None)
            if not token:
                raise exceptions.AuthenticationFailed()
            # 2.token错误,,返回None(我不处理,交给下一个认证类处理,则默认是None)
            user_object = models.UserInfo.objects.filter(token=token).first()
            if not user_object:
                raise exceptions.AuthenticationFailed()
            # 3.认证成功
            return (user_object,token) # request.user/request.auth
  • 相关阅读:
    IDEA 如何批量修改变量名
    Idea 竖选文本、竖向选择、横向纵向选择文本代码
    IDEA中的.iml文件和.idea文件夹
    IDEA-Maven的Dependencies中出现红色波浪线
    接收来自路劲中的参数
    Jquery基础知识点
    JavaScript浏览器对象
    JavaScript面向对象编程
    HTML5 <iframe> 标签
    JavaScript标准对象
  • 原文地址:https://www.cnblogs.com/wenyeqing/p/15083623.html
Copyright © 2011-2022 走看看