diff --git a/.env b/.env
index 2f26ed02da8b5ec45b282490c9443c541e04f4c7..b981354fc0ce98f2bce191e2ece716909c215911 100644
--- a/.env
+++ b/.env
@@ -3,4 +3,5 @@ INSTANCE=PROD
 HOST=localhost
 USER=root
 PASSWORD=rootroot
-DB=parameter_database
\ No newline at end of file
+DB=parameter_database
+AUTH_BASE_URL=
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 6d6dd69a02336f5b6ef67682f6e96f8f805e91de..c6bdbb76309d8f805e24c9ab3df8f1ffde34d075 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,3 @@ build
 npm-debug.log
 .DS_Store
 logs/
-
-.env
diff --git a/package-lock.json b/package-lock.json
index 38876356e7872cef2e33c0d4772e4a9b7e705898..f5c9205c678bd4a8c58f5e0a2252e82a03cbd51e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1805,6 +1805,14 @@
       "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
       "dev": true
     },
+    "@types/axios": {
+      "version": "0.14.0",
+      "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz",
+      "integrity": "sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=",
+      "requires": {
+        "axios": "*"
+      }
+    },
     "@types/babel__core": {
       "version": "7.1.16",
       "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz",
diff --git a/package.json b/package.json
index e5c2c8337b9141cf4637a6c57169ed4c38b8fbfc..851cc5ac566d5563af79f44c5403e288670b9db0 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
   "description": "Herramienta de calculo del requerimiento energetico ponderado de una poblacion, llamado REPP.",
   "main": "index.ts",
   "dependencies": {
+    "@types/axios": "^0.14.0",
     "@types/validator": "^13.6.3",
     "axios": "^0.23.0",
     "config.json": "0.0.4",
diff --git a/src/Controllers/AuthController.ts b/src/Controllers/UserController.ts
similarity index 95%
rename from src/Controllers/AuthController.ts
rename to src/Controllers/UserController.ts
index 2f4a7b33a2ecda19a5c168953f3b144ff7321f19..4a630c1d57456d55015284c415b0618971f2cd6b 100644
--- a/src/Controllers/AuthController.ts
+++ b/src/Controllers/UserController.ts
@@ -1,50 +1,50 @@
-import {
-  Handler, Request, Response, Router,
-} from 'express';
-
-const router = Router();
-
-const create: Handler = async (req: Request, res: Response) => {
-};
-
-const listUsers: Handler = async (req: Request, res: Response) => {
-
-};
-
-const login: Handler = async (req: Request, res: Response) => {
-
-};
-
-const update: Handler = async (req: Request, res: Response) => {
-
-};
-
-const password: Handler = async (req: Request, res: Response) => {
-
-};
-
-const approve: Handler = async (req: Request, res: Response) => {
-
-};
-
-const cancel: Handler = async (req: Request, res: Response) => {
-
-};
-
-const giveAdminPermission: Handler = async (req: Request, res: Response) => {
-
-};
-
-const removeAdminPermission: Handler = async (req: Request, res: Response) => {
-
-};
-
-router.post('/', create);
-router.get('/', listUsers);
-router.post('/login', login);
-router.put('/:id', update);
-router.put('/:id/password', password);
-router.put('/:id/approve', approve);
-router.put('/:id/cancel', cancel);
-router.put('/:id/admin', giveAdminPermission);
-router.put('/:id/client', removeAdminPermission);
+import {
+  Handler, Request, Response, Router,
+} from 'express';
+
+const router = Router();
+
+const create: Handler = async (req: Request, res: Response) => {
+};
+
+const listUsers: Handler = async (req: Request, res: Response) => {
+
+};
+
+const login: Handler = async (req: Request, res: Response) => {
+
+};
+
+const update: Handler = async (req: Request, res: Response) => {
+
+};
+
+const password: Handler = async (req: Request, res: Response) => {
+
+};
+
+const approve: Handler = async (req: Request, res: Response) => {
+
+};
+
+const cancel: Handler = async (req: Request, res: Response) => {
+
+};
+
+const giveAdminPermission: Handler = async (req: Request, res: Response) => {
+
+};
+
+const removeAdminPermission: Handler = async (req: Request, res: Response) => {
+
+};
+
+router.post('/', create);
+router.get('/', listUsers);
+router.post('/login', login);
+router.put('/:id', update);
+router.put('/:id/password', password);
+router.put('/:id/approve', approve);
+router.put('/:id/cancel', cancel);
+router.put('/:id/admin', giveAdminPermission);
+router.put('/:id/client', removeAdminPermission);
diff --git a/src/Middlewares/authChecker.ts b/src/Middlewares/authChecker.ts
index 543aa4f988311f50dcff01b3ac09b62ef8f6f316..b7daf846026eed81686e79e776d37b38e37b7d1f 100644
--- a/src/Middlewares/authChecker.ts
+++ b/src/Middlewares/authChecker.ts
@@ -1,5 +1,14 @@
-const auditMiddleware = (req, res, next) => {
+import express, { Request, Response, NextFunction } from 'express';
+import { validate } from '../Services/UserAPI';
+
+const authChecker = (req: any, res: Response, next: NextFunction): void => {
+  const token = req.headers.authorization;
+  const userId = validate(token);
+  if (userId === -1) {
+    res.status(401).send('auth failed');
+  }
+  req.user_id = userId;
   next();
 };
 
-export default auditMiddleware;
+export default authChecker;
diff --git a/src/Services/AuthAPI.ts b/src/Services/AuthAPI.ts
deleted file mode 100644
index 92f836217403325a3b3e8b96dd0b31d607cbae36..0000000000000000000000000000000000000000
--- a/src/Services/AuthAPI.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import axios from 'axios';
-
-export const validate = () => {
-  axios.post();
-};
diff --git a/src/Services/UserAPI.ts b/src/Services/UserAPI.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b0fc01fda0e291f9f43172f880313c1b43196f46
--- /dev/null
+++ b/src/Services/UserAPI.ts
@@ -0,0 +1,17 @@
+import axios from 'axios';
+
+const instance = axios.create({
+  baseURL: process.env.AUTH_BASE_URL,
+});
+
+export const validate = (token: string): number => {
+  let id = -1;
+  instance.post('/validate', { token })
+    .then((res) => {
+      id = (res.data as any).userId as number;
+    })
+    .catch((err) => {
+      // if needed implement later
+    });
+  return id;
+};