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)
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)
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']
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']
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']
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
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)
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)
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
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