diff --git a/src/api/PrivateRoute/PrivateRoute.tsx b/src/api/PrivateRoute/PrivateRoute.tsx
deleted file mode 100644
index b83511d1f735bae4c735e9f49991241ac2db27fa..0000000000000000000000000000000000000000
--- a/src/api/PrivateRoute/PrivateRoute.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import React, { useState, useEffect, useContext } from 'react';
-import { Route, Redirect, RouteProps } from 'react-router-dom';
-import { NonAuthRoutes } from 'api/routes';
-import { AuthContext } from 'components/AuthUser/AuthContext';
-
-/**
- * A wrapper for <Route> that redirects to the login screen if you're not yet authenticated.
- * Every non-public route must be wrapped with this component.
- * */
-type Props = {
-  Component: React.FC<RouteProps>;
-  path: string;
-  requiredRoles: string[];
-};
-
-/* eslint-disable react/jsx-props-no-spreading */
-export const PrivateRoute = ({
-  Component,
-  path,
-  requiredRoles,
-}: Props): JSX.Element => {
-  const { role, isAuth } = useContext(AuthContext);
-
-  // Check if the role is contained in the roles array (passed as props).
-  const userHasRequiredRole = requiredRoles.includes(role);
-
-  const message = userHasRequiredRole
-    ? 'Please log in to view this page'
-    : 'Your role is not allowed';
-
-  return (
-    <Route
-      exact={false}
-      path={path}
-      render={(props: RouteProps) =>
-        isAuth && userHasRequiredRole ? (
-          <Component {...props} />
-        ) : (
-          <Redirect
-            to={{
-              pathname: !userHasRequiredRole
-                ? `${NonAuthRoutes.auth}${NonAuthRoutes.signIn}`
-                : NonAuthRoutes.unauthorized,
-              state: {
-                message,
-                requestedPath: path,
-              },
-            }}
-          />
-        )
-      }
-    />
-  );
-};
diff --git a/src/api/RestrictedRoute/RestrictedRoute.tsx b/src/api/RestrictedRoute/RestrictedRoute.tsx
deleted file mode 100644
index 1230e56b9ad91772a34c829e52516b29cc97b6e6..0000000000000000000000000000000000000000
--- a/src/api/RestrictedRoute/RestrictedRoute.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import React, { useState, useEffect, useContext } from 'react';
-import { Route, Redirect, RouteProps } from 'react-router-dom';
-import { AuthRoutes, NonAuthRoutes } from 'api/routes';
-import { isAuthenticated } from 'api/isAuthenticated';
-
-/**
- *
- * */
-type Props = {
-  Component: React.FC<RouteProps>;
-  restricted: boolean;
-  path: string;
-};
-
-/**
- * Wrapper for Route that basing on if the user is authenticated,
- * redirects to:
- * - Entry point of the private route (the homepage);
- * - Login page.
- */
-
-/* eslint-disable react/jsx-props-no-spreading */
-export const RestrictedRoute = ({ Component, path }: Props): JSX.Element => {
-  const [authUser, setAuthUser] = useState<boolean>(false);
-  useEffect(() => {
-    isAuthenticated(setAuthUser);
-  });
-
-  return (
-    <Route
-      path={path}
-      render={(props: RouteProps) =>
-        authUser ? (
-          // Redirect to homepage.
-          <Redirect
-            to={{ pathname: `${AuthRoutes.dashboard}${AuthRoutes.home}` }}
-          />
-        ) : (
-          // Redirect to component.
-          <Component {...props} />
-        )
-      }
-    />
-  );
-};
diff --git a/src/api/fetchCookie.ts b/src/api/fetchCookie.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b2b27209425b04987e927d8e33f71f8403e17c06
--- /dev/null
+++ b/src/api/fetchCookie.ts
@@ -0,0 +1,16 @@
+import axios from 'axios';
+
+/**
+ *
+ * Ask and set csrf cookie to server.
+ * @param setIsCookieFetched function to set the state isCookieFetched.
+ * @returns null
+ */
+export const fetchCookie = async (
+  setIsCookieFetched: React.Dispatch<React.SetStateAction<string>>,
+): Promise<unknown> => {
+  const response = await axios('/api/web/csrf');
+  setIsCookieFetched(response.data.token);
+  localStorage.setItem('COOKIE', response.data.token);
+  return null;
+};
diff --git a/src/api/getRole.ts b/src/api/getRole.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a20d30444cd9c69f720a6f1b72f9317268cdc046
--- /dev/null
+++ b/src/api/getRole.ts
@@ -0,0 +1,12 @@
+import axios from 'axios';
+import { AuthContext } from 'components/AuthUser/AuthContext';
+import { useContext } from 'react';
+
+export const getRole = async (
+  setRole: React.Dispatch<React.SetStateAction<string>>,
+): Promise<void> => {
+  const response = await axios('/api/web/login/get_role').then(
+    (res) => res.data.role,
+  );
+  setRole(response);
+};
diff --git a/src/api/isAuthenticated.ts b/src/api/isAuthenticated.ts
new file mode 100644
index 0000000000000000000000000000000000000000..656a7ccd371031f8bd79a8b8bb7458abfa4ecb12
--- /dev/null
+++ b/src/api/isAuthenticated.ts
@@ -0,0 +1,10 @@
+import axios from 'axios';
+
+export const isAuthenticated = async (
+  setIsAuth: React.Dispatch<React.SetStateAction<boolean>>,
+): Promise<void> => {
+  const response = await axios('/api/web/login/is_authenticated').then(
+    (res) => res.data.is_authenticated,
+  );
+  setIsAuth(response);
+};