示例#1
0
    def authenticate(self, request):

        # 非登录页面需要校验token
        authorization = request.META.get('HTTP_AUTHORIZATION', '')
        auth = authorization.split()
        if not auth:
            raise exceptions.AuthenticationFailed({
                'error': '未获取到Authorization请求头',
                'status': False
            })
        if auth[0].lower() != 'jwt':
            raise exceptions.AuthenticationFailed({
                'error': 'Authorization请求头中认证方式错误',
                'status': False
            })

        if len(auth) == 1:
            raise exceptions.AuthenticationFailed({
                'error': "非法Authorization请求头",
                'status': False
            })
        elif len(auth) > 2:
            raise exceptions.AuthenticationFailed({
                'error': "非法Authorization请求头",
                'status': False
            })

        token = auth[1]
        result = parse_payload(token)
        if not result['status']:
            raise exceptions.AuthenticationFailed(result)

        # 如果想要request.user等于用户对象,此处可以根据payload去数据库中获取用户对象。
        return (result, token)
示例#2
0
 def authenticate(self, request):
     token = request.query_params.get('token')
     payload = parse_payload(token)
     if not payload['status']:
         raise exceptions.AuthenticationFailed(payload)
     # 如果想要request.user等于用户对象,此处可以根据payload去数据库中获取用户对象。
     return (payload, token)
示例#3
0
    def process_request(self, request):

        # 如果是登录页面,则通过
        if request.path_info == '/login/':
            return

        # 非登录页面需要校验token
        authorization = request.META.get('HTTP_AUTHORIZATION', '')
        auth = authorization.split()
        if not auth:
            return JsonResponse({
                'error': '未获取到Authorization请求头',
                'status': False
            })
        if auth[0].lower() != 'jwt':
            return JsonResponse({
                'error': 'Authorization请求头中认证方式错误',
                'status': False
            })
        if len(auth) == 1:
            return JsonResponse({
                'error': "非法Authorization请求头",
                'status': False
            })
        elif len(auth) > 2:
            return JsonResponse({
                'error': "非法Authorization请求头",
                'status': False
            })

        token = auth[1]
        result = parse_payload(token)
        if not result['status']:
            return JsonResponse(result)
        request.user_info = result['data']
示例#4
0
def jwt_query_params_auth():
    if request.path == '/login/':
        return
    token = request.args.get('token')
    result = parse_payload(token)
    if not result['status']:
        return jsonify(result)
    g.user_info = result['data']
示例#5
0
    def process_request(self, request):
        if request.path_info == '/login/':
            return

        token = request.GET.get('token')
        result = parse_payload(token)
        if not result['status']:
            return JsonResponse(result)
        request.user_info = result['data']
示例#6
0
 def authenticate(self, request):
     # 非登录页面需要校验token
     token = request.META.get('HTTP_AUTHORIZATION', '')
     print(token)
     if not token:
         raise exceptions.AuthenticationFailed({'error': '未获取到Authorization请求头', 'status': False})
     result = parse_payload(token)
     if result['error']:
         raise exceptions.AuthenticationFailed(result)
     # 如果想要request.user等于用户对象,此处可以根据payload去数据库中获取用户对象。
     return result, token
示例#7
0
    def authenticate(self, request):
        token = request.query_params.get('token')
        payload = parse_payload(token)
        if not payload['status']:
            raise exceptions.AuthenticationFailed(payload)

        # request.user等于用户对象,根据payload去数据库中获取用户对象。
        user_id = payload['data'].get("id")
        user = models.User.objects.filter(id=user_id).first()

        return (user, token)
示例#8
0
 def authenticate(self, request):
     authorization = request.META.get('HTTP_AUTHORIZATION', '')
     if not authorization:
         raise exceptions.AuthenticationFailed({
             'error': '未获取到Authorization请求头',
             'status': False
         })
     token = authorization
     payload = parse_payload(token)
     if not payload['status']:
         raise exceptions.AuthenticationFailed(payload)
     return (payload, token)
示例#9
0
 def process_request(self, request):
     print(request.path_info)
     # 白名单放行
     for i in WHITE_LIST:
         if re.search(request.path_info, i):
             return
     # 校验非登录页面的get请求
     token = request.GET.get('token')
     result = parse_payload(token)
     if not result['status']:
         return JsonResponse(result,
                             json_dumps_params={'ensure_ascii': False})
     request.user_info = result['data']
     return
示例#10
0
    def authenticate(self, request):

        # 非登录页面需要校验token
        authorization = request.META.get('HTTP_AUTHORIZATION', '')
        auth = authorization.split()
        if not auth:
            raise exceptions.AuthenticationFailed({'error': '未获取到Authorization请求头', 'status': False})
        if auth[0].lower() != 'jwt':
            raise exceptions.AuthenticationFailed({'error': 'Authorization请求头中认证方式错误', 'status': False})

        if len(auth) == 1:
            raise exceptions.AuthenticationFailed({'error': "非法Authorization请求头", 'status': False})
        elif len(auth) > 2:
            raise exceptions.AuthenticationFailed({'error': "非法Authorization请求头", 'status': False})

        token = auth[1]
        result = parse_payload(token)
        if not result['status']:
            raise exceptions.AuthenticationFailed(result)

        # 数据库获取用户对象,赋值给request.user
        user_id = result['data'].get("id")
        user = models.User.objects.filter(id=user_id).first()
        return user, token