diff --git a/src/index.ts b/src/index.ts
index 8f793b9d26beea53c0fab34e19e158287fdc77c9..e880caa51515ba7eca2a69fe1f83c570176280a9 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -12,10 +12,15 @@ app.use(expressSession({
   secret: process.env.SESSION_SECRET || "alma",
   resave: false,
   saveUninitialized: true,
-  cookie: { secure: true }
+  cookie: { secure: false }
 }));
 
-app.get("/", (req: Request, res: Response) => res.send("Hel World!"));
+app.get("/", (req: Request, res: Response) => {
+  let message = "World!";
+  if(req.session!.user)
+     message = req.session!.user!.sn || "World!";
+  res.send( "Hello " + message)
+});
 
 // Register routes
 authRoute(app);
diff --git a/src/middlewares/auth/authenticated.ts b/src/middlewares/auth/authenticated.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ef36ada2061092d69082adcfe186e5e8c69e93ec
--- /dev/null
+++ b/src/middlewares/auth/authenticated.ts
@@ -0,0 +1,10 @@
+import {Request, Response, NextFunction} from "express";
+
+const authenticated = () => (req : Request, res : Response, next: NextFunction ) =>{
+    if(req.session!.user)
+        next();
+    res.status(403);
+    res.json({message: "You have to login to see this page"});
+}
+
+export default authenticated;
\ No newline at end of file
diff --git a/src/middlewares/auth/complete.ts b/src/middlewares/auth/complete.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dedc5c8c0d95f6611bc2731264f4e851c15128dd
--- /dev/null
+++ b/src/middlewares/auth/complete.ts
@@ -0,0 +1,29 @@
+import { Request, Response } from 'express';
+import {oauth2, scope} from '../../utils/auth'
+import axios from "axios";
+
+
+const complete = () => async (req: Request, res: Response) => { 
+    const tokenConfig = {
+        code: req.query.code,
+        scope: scope,
+        redirect_uri: ""
+    };
+    
+    try {
+        const result = await oauth2().authorizationCode.getToken(tokenConfig);
+        const token = oauth2().accessToken.create(result);
+        await axios.get(`https://auth.sch.bme.hu/api/profile/?access_token=${token.token.access_token}`)
+            .then( (response) =>  {
+                req.session!.user = response.data;
+             })
+            .catch(function (error) {
+                console.log(error);
+            });
+        res.redirect('/');
+    } catch (error) {
+        console.log('Access Token Error', error.message);   
+    }
+};
+
+export default complete;
\ No newline at end of file
diff --git a/src/middlewares/auth/login.ts b/src/middlewares/auth/login.ts
new file mode 100644
index 0000000000000000000000000000000000000000..356629f10a2f8bda13639201a837cdf7416b6fcd
--- /dev/null
+++ b/src/middlewares/auth/login.ts
@@ -0,0 +1,13 @@
+import { Request, Response } from 'express';
+import {oauth2, scope} from '../../utils/auth'
+
+
+const authorizationUri = oauth2().authorizationCode.authorizeURL({
+    scope: scope,
+});
+
+
+const login = () =>   (req: Request, res: Response) => res.redirect(authorizationUri);
+
+
+export default login;
\ No newline at end of file
diff --git a/src/middlewares/auth/logout.ts b/src/middlewares/auth/logout.ts
new file mode 100644
index 0000000000000000000000000000000000000000..040bba6460c7d19c67c1b2583544ccbe8eca508c
--- /dev/null
+++ b/src/middlewares/auth/logout.ts
@@ -0,0 +1,9 @@
+import { Request, Response } from 'express';
+
+const logout = () => (req : Request, res : Response) =>{
+    console.log(req.session!.user);
+    req.session!.destroy(() => console.log("user logged out."));
+    res.redirect("/");
+}
+
+export default logout;
\ No newline at end of file
diff --git a/src/routes/auth.ts b/src/routes/auth.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b930250fa6704fd6b43c0f1191e7ff25326c00e6
--- /dev/null
+++ b/src/routes/auth.ts
@@ -0,0 +1,15 @@
+import { Application } from 'express';
+import login from '../middlewares/auth/login';
+import complete from '../middlewares/auth/complete';
+import logout from '../middlewares/auth/logout';
+import authenticated from '../middlewares/auth/authenticated'
+
+ const authRout = (app: Application): void => {
+    app.get('/login', login() );
+
+    app.get('/complete', complete() );
+
+    app.get('/logout', authenticated(), logout() );
+}
+
+export default authRout;
\ No newline at end of file
diff --git a/src/utils/auth.ts b/src/utils/auth.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d00f20423b0e457c8a03b7a34e4b45915c5c9b0d
--- /dev/null
+++ b/src/utils/auth.ts
@@ -0,0 +1,19 @@
+import simpleOauth2 from "simple-oauth2";
+
+const oauth2 = () => simpleOauth2.create(
+  {
+    client: {
+      id: process.env.AUTH_ID || "",
+      secret: process.env.AUTH_SECRET_KEY || ""
+    },
+    auth: {
+      tokenHost: 'https://auth.sch.bme.hu',
+      tokenPath: '/oauth2/token',
+      authorizePath: '/site/login'
+    }
+  }
+);
+
+const scope : string[] = ['basic', 'mail', 'sn', 'givenName']
+
+export {oauth2, scope};
\ No newline at end of file