diff --git a/NodeApp/src/managers/HttpManager.ts b/NodeApp/src/managers/HttpManager.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62c787ab1b8fab4a553acb88ad5ae79c1bdfe97a
--- /dev/null
+++ b/NodeApp/src/managers/HttpManager.ts
@@ -0,0 +1,55 @@
+import axios, { AxiosRequestHeaders } from 'axios';
+import Config                         from '../Config/Config';
+import SessionManager                 from './SessionManager';
+import FormData                       from 'form-data';
+
+
+class HttpManager {
+    private static _instance: HttpManager;
+
+    public static get instance(): HttpManager {
+        if ( !HttpManager._instance ) {
+            HttpManager._instance = new HttpManager();
+        }
+
+        return HttpManager._instance;
+    }
+
+    registerAxiosInterceptor() {
+        this.registerRequestInterceptor();
+        this.registerResponseInterceptor();
+    }
+
+    private registerRequestInterceptor() {
+        axios.interceptors.request.use((config) => {
+            if ( config.data instanceof FormData ) {
+                config.headers = { ...config.headers, ...(config.data as FormData).getHeaders() } as AxiosRequestHeaders;
+            }
+
+            if ( SessionManager.isLogged && config.url && config.url.indexOf(Config.apiURL) !== -1 ) {
+                config.headers.Authorization = 'BEARER ' + SessionManager.token;
+            }
+
+            return config;
+        });
+    }
+
+    private registerResponseInterceptor() {
+        axios.interceptors.response.use((response) => {
+
+            if ( response.data && response.data.token ) {
+                SessionManager.token = response.data.token;
+            }
+
+            return response;
+        }, (error) => {
+            if ( error.response.status === 401 ) {
+
+            }
+        });
+    }
+}
+
+
+export default HttpManager.instance;
+