diff --git a/client/bundle.js b/client/bundle.js
index aa94d4615d5ee5817185bc0b6afbd041d74d173a..66a36f861ab61905c73958b402429069441ac8f2 100644
--- a/client/bundle.js
+++ b/client/bundle.js
@@ -59,53 +59,82 @@
 	let titleElement= document.querySelector('title');
 
 
-	/*** Temporary user management implementation **/
-
-	let loginButton = document.querySelector('#login-button');
-	let params = `width=400,height=600,left=600,top=100`;
-
+	let response = `{
+	  "status": "Authenticated",
+	  "token": {
+	    "data": "eyJleHAiOjE1MDU1NTU0NzIsImFsZyI6IkhTMjU2IiwiaWF0IjoxNTA1NDY5MDcyfQ.eyJpZCI6ImlrZXJoIn0.gj6rlQlkUkrzPdec39gCMOWJqGZnLJSDgJKOMaTHqkM",
+	    "expires_in": 86400
+	  },
+	  "user": {
+	    "email": "iker@ikerhurtado.com",
+	    "username": "ikerh"
+	  }
+	}`;
+	/*** User login through a redirection  **/
+
+	let userNameElement = document.querySelector('#user-name');
+	let logoutButton = document.querySelector('#logout-button');
+
+	// When the app loads, it checks if the user is authenticated
 	var oReq = new XMLHttpRequest();
 	oReq.addEventListener("load", e => {
 	    //console.log("Loading user data" ,oReq.responseText);
-	  let userNameElement = document.querySelector('#user-name');
+
 	  let jsonData;
 	  try {
-	    jsonData = JSON.parse(oReq.responseText); // JSON.parse(response);  // JSON.parse(oReq.responseText); //
+	    jsonData = JSON.parse(oReq.responseText); // JSON.parse(response);  // 
 	  } catch(e) {  console.log('../saml/user/ json response bad format', e);  }
+
 	    if (jsonData.status === 'Authenticated'){
 	      userNameElement.innerHTML = jsonData.user.username;
-	      loginButton.style.display = 'none';
-	      util.setAuthRequestHeader(jsonData.token.data);
-	    }else{
-	      loginButton.style.display = 'inline';
-	      userNameElement.innerHTML = 'Guest';
-	      // AuthRequestHeader set to guest tiken by default
-	      loginButton.addEventListener( "click", e => {
-	        let loginWindow;
-	        // I think it's a blocking call
-	        loginWindow =  window.open('http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/', 'Login', params);
-	        //loginWindow =  window.open('https://idp.nomad-coe.eu/idp/profile/SAML2/Redirect/SSO?execution=e21s1', 'Login', params);
-	/*
-	        console.log("loginWindow", loginWindow);
-	        loginWindow.addEventListener("focus", function(event) {
-	          console.log("focus", loginWindow, loginWindow.document);
-	        });
-
-	        loginWindow.addEventListener("unload", function(event) {
-	          console.log("unload", loginWindow, loginWindow.document.firstChild);
-	          //loginWindow.close();
-	        });
-	*/
-	        //location.reload(true);
-	      });
+	      document.querySelector('#guest-user').style.display = 'none';
+	      document.querySelector('#auth-user').style.display = 'inline';
+	      util.setAuthRequestHeader(jsonData.user.username, jsonData.token.data);
 	    }
-
 	});
 
 	oReq.open("GET", "http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/user/");
 	oReq.send();
 
-	/*******************************/
+
+	// Logout
+	logoutButton.addEventListener( "click", e => {
+	console.log('logoutButton out ');
+	  var oReq1 = new XMLHttpRequest();
+	  oReq1.addEventListener("load", e => {
+	    console.log('Logging out ',userNameElement.innerHTML);
+	    //location.reload(true);
+	    userNameElement.innerHTML = '';
+	    document.querySelector('#guest-user').style.display = 'inline';
+	    document.querySelector('#auth-user').style.display = 'none';
+	    util.setAuthRequestHeader();
+	  });
+	  oReq1.open("GET", "http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/logout/");
+	  oReq1.send();
+	});
+
+	/***   Popup code
+
+	let loginButton = document.querySelector('#login-button');
+	let params = `width=400,height=600,left=600,top=100`;
+	loginButton.addEventListener( "click", e => {
+	  let loginWindow;
+	  // I think it's a blocking call
+	  loginWindow =  window.open('http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/', 'Login', params);
+	  console.log("loginWindow", loginWindow);
+	  loginWindow.addEventListener("focus", function(event) {
+	    console.log("focus", loginWindow, loginWindow.document);
+	  });
+
+	  loginWindow.addEventListener("unload", function(event) {
+	    console.log("unload", loginWindow, loginWindow.document.firstChild);
+	    //loginWindow.close();
+	  });
+	  //location.reload(true);
+	});
+	*/
+
+	/*************************/
 
 
 
@@ -316,18 +345,28 @@
 	  'Ns', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og' // Mt = 109
 	];
 
+
 	let authRequestHeaderValue = AUTH_REQUEST_HEADER_GUEST_USER;
+	console.log('user: ANONYMOUS  authRequestHeader: ',authRequestHeaderValue);
 
-	function setAuthRequestHeader(value){
-	  authRequestHeaderValue = 'Basic '+ btoa(value+':');
-	  console.log('setAuthRequestHeader', value);
+	function setAuthRequestHeader(user, value){
+	  if (value === undefined){// default value
+	    authRequestHeaderValue = AUTH_REQUEST_HEADER_GUEST_USER;
+	    console.log('user: ANONYMOUS  authRequestHeader: ',authRequestHeaderValue);
+	  } else{
+	    authRequestHeaderValue = 'Basic '+ btoa(value+':');
+	    console.log('user',user,'authRequestHeader: ',authRequestHeaderValue);
+	  }
 	}
 
+
+
+
 	function serverReq(url, callback){
 	  var oReq = new XMLHttpRequest();
 	  oReq.addEventListener("load", callback);
 	  oReq.open("GET", url);
-	  console.log('authRequestHeaderValue: ',authRequestHeaderValue);
+	  //console.log('authRequestHeaderValue: ',authRequestHeaderValue);
 	  oReq.setRequestHeader('Authorization', authRequestHeaderValue);
 	  oReq.send();
 	  return oReq;
@@ -339,7 +378,7 @@
 	  oReq.addEventListener('load', callback);
 	  oReq.open('POST', url);
 	  oReq.setRequestHeader('Content-Type', 'application/json');
-	  console.log('authRequestHeaderValue: ',authRequestHeaderValue);
+	  //console.log('authRequestHeaderValue: ',authRequestHeaderValue);
 	  oReq.setRequestHeader('Authorization', authRequestHeaderValue);
 	  oReq.send(data);
 	  return oReq;
diff --git a/client/index.html b/client/index.html
index 71c6edb0ebff352c5358c48450a7c571cc03c8fc..078c8edfeb6ff7c83ad5978937b499843862df96 100644
--- a/client/index.html
+++ b/client/index.html
@@ -53,12 +53,19 @@
 
       <div style="float: right; width: 16%;text-align: right; padding-top:5px; ">
         <span style="vertical-align: middle;">
-          <span id="user-name"></span>
+
+          <span id="guest-user">Guest
+            <a style="text-decoration: underline"
+             href="http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/?sso2" >(LOGIN)</a>
+          </span>
            <!--<a id="login-button"  target="_blank" style="text-decoration: underline"
             href="http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml" >(LOGIN)</a>
           -->
-            <a id="login-button"
-            style="text-decoration: underline; cursor: pointer" >(LOGIN)</a>
+          <span id="auth-user" style="display: none">
+            <span id="user-name"></span>
+            <a id="logout-button" style="text-decoration: underline; cursor: pointer" >
+              (logout)</a>
+          </span>
           &nbsp;&nbsp;
         </span>
         <img  src="img/user.png" />
diff --git a/client/src/common/util.js b/client/src/common/util.js
index 778430b92c1015a818d76a69830b366af0f5ef2d..b56d2ee5d8cdd4aca468fcb36a3e707b12190278 100644
--- a/client/src/common/util.js
+++ b/client/src/common/util.js
@@ -49,18 +49,28 @@ let ELEMENTS = [
   'Ns', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og' // Mt = 109
 ];
 
-let authRequestHeaderValue = AUTH_REQUEST_HEADER_GUEST_USER;
 
-function setAuthRequestHeader(value){
-  authRequestHeaderValue = 'Basic '+ btoa(value+':');
-  console.log('setAuthRequestHeader', value);
+let authRequestHeaderValue = AUTH_REQUEST_HEADER_GUEST_USER;
+console.log('user: ANONYMOUS  authRequestHeader: ',authRequestHeaderValue);
+
+function setAuthRequestHeader(user, value){
+  if (value === undefined){// default value
+    authRequestHeaderValue = AUTH_REQUEST_HEADER_GUEST_USER;
+    console.log('user: ANONYMOUS  authRequestHeader: ',authRequestHeaderValue);
+  } else{
+    authRequestHeaderValue = 'Basic '+ btoa(value+':');
+    console.log('user',user,'authRequestHeader: ',authRequestHeaderValue);
+  }
 }
 
+
+
+
 function serverReq(url, callback){
   var oReq = new XMLHttpRequest();
   oReq.addEventListener("load", callback);
   oReq.open("GET", url);
-  console.log('authRequestHeaderValue: ',authRequestHeaderValue);
+  //console.log('authRequestHeaderValue: ',authRequestHeaderValue);
   oReq.setRequestHeader('Authorization', authRequestHeaderValue);
   oReq.send();
   return oReq;
@@ -72,7 +82,7 @@ function serverReqPOST(url, data, callback){
   oReq.addEventListener('load', callback);
   oReq.open('POST', url);
   oReq.setRequestHeader('Content-Type', 'application/json');
-  console.log('authRequestHeaderValue: ',authRequestHeaderValue);
+  //console.log('authRequestHeaderValue: ',authRequestHeaderValue);
   oReq.setRequestHeader('Authorization', authRequestHeaderValue);
   oReq.send(data);
   return oReq;
diff --git a/client/src/main.js b/client/src/main.js
index b973c0c66fe7c8126d7e909f18844813ac58ba40..dc93fdddcb73af91408f8b0323c59e23c6858c2a 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -13,53 +13,82 @@ let contentElement= document.getElementById("content");
 let titleElement= document.querySelector('title');
 
 
-/*** Temporary user management implementation **/
+let response = `{
+  "status": "Authenticated",
+  "token": {
+    "data": "eyJleHAiOjE1MDU1NTU0NzIsImFsZyI6IkhTMjU2IiwiaWF0IjoxNTA1NDY5MDcyfQ.eyJpZCI6ImlrZXJoIn0.gj6rlQlkUkrzPdec39gCMOWJqGZnLJSDgJKOMaTHqkM",
+    "expires_in": 86400
+  },
+  "user": {
+    "email": "iker@ikerhurtado.com",
+    "username": "ikerh"
+  }
+}`;
+/*** User login through a redirection  **/
 
-let loginButton = document.querySelector('#login-button');
-let params = `width=400,height=600,left=600,top=100`;
+let userNameElement = document.querySelector('#user-name');
+let logoutButton = document.querySelector('#logout-button');
 
+// When the app loads, it checks if the user is authenticated
 var oReq = new XMLHttpRequest();
 oReq.addEventListener("load", e => {
     //console.log("Loading user data" ,oReq.responseText);
-  let userNameElement = document.querySelector('#user-name');
+
   let jsonData;
   try {
-    jsonData = JSON.parse(oReq.responseText); // JSON.parse(response);  // JSON.parse(oReq.responseText); //
+    jsonData = JSON.parse(oReq.responseText); // JSON.parse(response);  // 
   } catch(e) {  console.log('../saml/user/ json response bad format', e);  }
+
     if (jsonData.status === 'Authenticated'){
       userNameElement.innerHTML = jsonData.user.username;
-      loginButton.style.display = 'none';
-      util.setAuthRequestHeader(jsonData.token.data);
-    }else{
-      loginButton.style.display = 'inline';
-      userNameElement.innerHTML = 'Guest';
-      // AuthRequestHeader set to guest tiken by default
-      loginButton.addEventListener( "click", e => {
-        let loginWindow;
-        // I think it's a blocking call
-        loginWindow =  window.open('http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/', 'Login', params);
-        //loginWindow =  window.open('https://idp.nomad-coe.eu/idp/profile/SAML2/Redirect/SSO?execution=e21s1', 'Login', params);
-/*
-        console.log("loginWindow", loginWindow);
-        loginWindow.addEventListener("focus", function(event) {
-          console.log("focus", loginWindow, loginWindow.document);
-        });
-
-        loginWindow.addEventListener("unload", function(event) {
-          console.log("unload", loginWindow, loginWindow.document.firstChild);
-          //loginWindow.close();
-        });
-*/
-        //location.reload(true);
-      });
+      document.querySelector('#guest-user').style.display = 'none';
+      document.querySelector('#auth-user').style.display = 'inline';
+      util.setAuthRequestHeader(jsonData.user.username, jsonData.token.data);
     }
-
 });
 
 oReq.open("GET", "http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/user/");
 oReq.send();
 
-/*******************************/
+
+// Logout
+logoutButton.addEventListener( "click", e => {
+console.log('logoutButton out ');
+  var oReq1 = new XMLHttpRequest();
+  oReq1.addEventListener("load", e => {
+    console.log('Logging out ',userNameElement.innerHTML);
+    //location.reload(true);
+    userNameElement.innerHTML = '';
+    document.querySelector('#guest-user').style.display = 'inline';
+    document.querySelector('#auth-user').style.display = 'none';
+    util.setAuthRequestHeader();
+  });
+  oReq1.open("GET", "http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/logout/");
+  oReq1.send();
+});
+
+/***   Popup code
+
+let loginButton = document.querySelector('#login-button');
+let params = `width=400,height=600,left=600,top=100`;
+loginButton.addEventListener( "click", e => {
+  let loginWindow;
+  // I think it's a blocking call
+  loginWindow =  window.open('http://enc-testing-nomad.esc.rzg.mpg.de/v1.0/saml/', 'Login', params);
+  console.log("loginWindow", loginWindow);
+  loginWindow.addEventListener("focus", function(event) {
+    console.log("focus", loginWindow, loginWindow.document);
+  });
+
+  loginWindow.addEventListener("unload", function(event) {
+    console.log("unload", loginWindow, loginWindow.document.firstChild);
+    //loginWindow.close();
+  });
+  //location.reload(true);
+});
+*/
+
+/*************************/