def decorated(*args, **kwargs): token = None header_name = authorizations['APITokenHeader']['name'] if header_name in request.headers: token = request.headers[header_name] if not token: return {'message': 'Необходим токен для выполнения операции.'}, 401 is_success, result = User.decode_auth_token(token) if is_success and result['sub'] == kwargs['username']: token = Token.query.filter_by(id=result['id']).first() if not token.is_revoked: return f(*args, **kwargs) else: return {'message': 'Токен был аннулирован.'}, 401 elif is_success: return {'message': 'Необходим токен владельца проекта.'}, 401 else: return {'message': result}, 401