def func_wrapper(*args, **kwargs): try: content = request.get_json() if "device_token" in content and content[ "device_token"] != "" or "neo_device_token" in request.cookies: if "device_token" in content: json_token = content["device_token"] else: json_token = request.cookies.get("neo_device_token") res, data = Device.decode_auth_token_old(json_token) if res is True: kwargs['device'] = data return func(*args, **kwargs) else: resp = jsonify({"success": False, "message": data}) resp.status_code = 401 return resp else: resp = jsonify({ "success": False, "message": "Aucun jwt trouvé dans le contenu de la requete" }) return resp except Exception as e: resp = jsonify({"success": False, "message": str(e)}) resp.status_code = 500 return resp
def get_device_from_header(request): token = request.headers.get('Authorization') if token is None or token == "": raise Exception("Authorization token not found") res, data = Device.decode_auth_token_old(token) if res is True: return data raise InvalidAuthentication(data)
def func_wrapper(*args, **kwargs): token = None if "Authorization" in request.headers: try: user = get_user_from_header(request) kwargs["client"] = user kwargs["is_device"] = False return func(*args, **kwargs) except InvalidAuthentication: try: device = get_device_from_header(request) kwargs["client"] = device kwargs["is_device"] = True return func(*args, **kwargs) except InvalidAuthentication as ie: resp = jsonify({"success": False, "message": str(ie)}) resp.status_code = 500 return resp if token is None or token == "": if "neo_user_token" in request.cookies: token = request.headers.get("neo_user_token") res, data = User.decode_auth_token_old(token) if res is True: kwargs['client'] = data kwargs["is_device"] = False return func(*args, **kwargs) else: resp = jsonify({"success": False, "message": data}) resp.status_code = 401 return resp if "neo_device_token" in request.cookies: token = request.headers.get("neo_device_token") res, data = Device.decode_auth_token_old(token) if res is True: kwargs['client'] = data kwargs["is_device"] = True return func(*args, **kwargs) else: resp = jsonify({"success": False, "message": data}) resp.status_code = 401 return resp resp = jsonify({"success": False, "message": "Token introuvable"}) return resp
def authenticate(self, jwt_token): try: if self.authenticated is True: return False, "Already authenticated" b, client = User.decode_auth_token_old(jwt_token) if not b: b, client = Device.decode_auth_token_old(jwt_token) if b: self.is_device = True if not b or client is None: return False, 'User not found' if client.json_token != jwt_token: return False, 'Invalid token' self.token = jwt_token self.client_id = client.id client.update_content(is_online=True) self.authenticated = True return True, 'User authenticated' except Exception as e: return False, str(e)