diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java
index 15d53ed61618452c5ad1909e2f0d1af0b9c910c1..b006def12676c02c25adeb22b51aa6870a65fac3 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/LoginServlet.java
@@ -75,4 +75,9 @@ public class LoginServlet extends HttpServlet {
         if(res == null) TomcatCustomErrorHandler.sendCustomError(resp,401,"Invalid credentials provided!");
         else resp.getOutputStream().write(JsonStream.serialize(res).getBytes());
     }
+
+    @Override
+    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        resp.setStatus(200);
+    }
 }
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
index ce6f0915afa76e94e305b467066c51b8344120d5..6730905ae63c5ae91b2f438cbab8b20b4a077b71 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java
@@ -62,6 +62,7 @@ public class UserServlet extends HttpServlet {
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         User user = new User();
         user.setUsername(req.getParameter("username"));
+        user.setNeedsPasswordReset(true);
         user.setPassword("TEMP-PASSWORD");
         user.setRealm("LOCAL");
         user.setUserType(AuthenticationSourceType.LOCAL);
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/CreateServerSettingsServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/CreateServerSettingsServlet.java
index a67fc61fc6b192bf5ab69d075a684a2ed73acb1f..d7ac12d9634b43f11761469b75aa606477c56bcc 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/CreateServerSettingsServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/CreateServerSettingsServlet.java
@@ -52,6 +52,6 @@ public class CreateServerSettingsServlet extends HttpServlet {
             resp.sendError(500, "Could not store settings, a problem occured with finishing the installation");
             return;
         }
-        resp.sendRedirect("/");
+        resp.setStatus(200);
     }
 }
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java
index e15bc234b446e69dd107719ad6deab0c07cf73d3..5475a95453b780f87fa85b260e9dd0d53cc53549 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java
@@ -50,13 +50,10 @@ public class StartInstallServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //Here we must decide which page to show - login or sign-up
-        StatementList statementList = new StatementList();
-        statementList.addStatement(new StatementElement("username","=","*",""));
         if(dataStore != null && dataStore.getUserDao() != null && !dataStore.getUserDao().getObjects(null).isEmpty())
             resp.setHeader("showLogin","true");
         else
             resp.setHeader("showLogin","false");
-
     }
 
     @Override
diff --git a/jams-server/src/main/resources/webapp/js/api.js b/jams-server/src/main/resources/webapp/js/api.js
index c0a35a7806d31c2816e532817e0effce6e14bde9..03ff6c8a98c44df83d2a8bfb0cb90f90fba61d43 100644
--- a/jams-server/src/main/resources/webapp/js/api.js
+++ b/jams-server/src/main/resources/webapp/js/api.js
@@ -160,10 +160,8 @@ function set_installation_response(url) {
                 window.location.replace(url);
             }
         }
-        else if (jqXHR) {
-            if (jqXHR.status = 200) {
-                window.location.replace(url);
-            }
-        }
+        else if (jqXHR && jqXHR.status == 200)
+            window.location.replace(url);
+
     }
 }
\ No newline at end of file
diff --git a/jams-server/src/main/resources/webapp/js/auth.js b/jams-server/src/main/resources/webapp/js/auth.js
index 8396c766e92aa6b7a931cb880eecf0dacd9c9e1c..8e916e75b3823dd32b1e1d738e00f365df78b8a2 100644
--- a/jams-server/src/main/resources/webapp/js/auth.js
+++ b/jams-server/src/main/resources/webapp/js/auth.js
@@ -24,8 +24,7 @@
     ajaxApiCall(api_path_post_install_admin, "GET", null, null, signupPageHandler);
  }
 
- function signupPageHandler(data, statusCode, jqXHR) {
-     // create Admin
+ function signupPageHandler(data) {
 
      if(data.getResponseHeader('showLogin') == "false") {
          var inputConfirmPassword = '<div class="form-label-group"><label for="confirmPassword" class="label-title">Confirm Password</label><input type="password" name="confirmPassword"          id="inputConfirmPassword" class="form-control" required autocomplete="off"><span id="message"></span></div>';
@@ -37,7 +36,7 @@
          $('#form-signup').removeClass('d-none');
          $('#admin-password-progress-bar-container').show();
      }
-     else if (data.getResponseHeader('showLogin') == "true") {
+     else if (data.getResponseHeader('showLogin') == "true" || data.status == 404) {
          admin_account = true;
          $('.title').text("Access your account");
          $('.form-submit').val("Log in");
@@ -62,88 +61,54 @@ function setLogout(data) {
   }
 }
 
-function authorizedAdmin() {
-  window.location.replace("search.html");
-}
-
-function authorizedUser(username) {
-  window.location.replace("user.html?username=" + username);
-}
-
 function noAuthorization() {
   window.location.replace("signup.html");
 }
 
 function getAdminStatus() {
-    return true;
-}
 
-function getApiCheck() {
-    apiCheck = true;
+    var tokenJSON = JSON.parse(atob(window.localStorage.getItem('access_token').split('.')[1]));
+    if (tokenJSON.scope == "ADMIN")
+        return true;
+    else
+        return false;
 }
 
-function setApiStatus(data, statusCode, jqXHR) {
-  if (data.status == 200) {
-      apiCheck = true;
-  }
+function getUser() {
+    var tokenJSON = JSON.parse(atob(window.localStorage.getItem('access_token').split('.')[1]));
+    if (tokenJSON.scope == "USER")
+        return tokenJSON.sub;
+    else
+        return "";
 }
 
 function getServerConfigStatus() {
   ajaxApiCall(api_path_get_server_status, 'GET', null, null, serverConfigStatus, false);
 }
 
-function serverConfigStatus(data, statusCode, jqXHR) {
-  // hasConnectionToAPI
-  getApiCheck();
-
-  if (apiCheck) {
-    // server is installed
+function serverConfigStatus(data) {
+    // check if server is installed
     if (data.installed == "true") {
-      if (getAdminStatus() && (!current_uri.includes('search.html')) && (!current_uri.includes('user.html')) && (!current_uri.includes('config.html'))) {
-        authorizedAdmin();
-      }
-      else if (!getAdminStatus() && (!current_uri.includes('user.html'))) {
-        authorizedUser(getUser());
-      }
-      else if (!getAdminStatus() && (!current_uri.includes('signup.html'))) {
-        noAuthorization();
-      }
+        if (getAdminStatus() && (!current_uri.includes('search.html')) && (!current_uri.includes('user.html')) && (!current_uri.includes('config.html'))) {
+            window.location.replace("search.html");
+        }
+        else if (!getAdminStatus() && getUser() && (!current_uri.includes('user.html'))) {
+            window.location.replace("user.html?username=" + getUser());
+        }
+        else if (!getAdminStatus() && !getUser() && (!current_uri.includes('signup.html'))) {
+            noAuthorization();
+        }
     }
     // has an Admin account but server is not installed
     else if (getAdminStatus()) {
-      ajaxApiCall(api_path_get_install_lastKnownStep, 'GET', null, null, lastServerConfigurationStepUri, false);
+        ajaxApiCall(api_path_get_install_lastKnownStep, 'GET', null, null, lastServerConfigurationStepUri, false);
     }
     else if (!current_uri.includes('signup.html')) {
-      noAuthorization();
+        noAuthorization();
     }
-  }
-  else if (!current_uri.includes('signup.html') && !current_uri.includes('new-password.html')) {
-    noAuthorization();
-  }
 }
 
 function lastServerConfigurationStepUri(data, statusCode, jqXHR) {
-  // if (jqXHR.status == 200) {
-  //   // lastKnownStep
-  //   var current_page = false;
-  //   uri_endpoint = data.uri;
-  //   if (uri_endpoint == api_path_post_install_ca) {
-  //       uri = ca_setup_page;
-  //   }
-  //   else if (uri_endpoint == api_path_post_install_auth) {
-  //       uri = identity_management_page;
-  //   }
-  //   else if (uri_endpoint == api_path_post_install_server) {
-  //       uri = server_parameters_page;
-  //   }
-  //   // redirect to lastKnownStep
-  //   if (!(current_uri.includes(uri))) {
-  //     window.location.replace(uri);
-  //   }
-  // }
-  // else {
-  //   invalidLogin();
-  // }
 }
 
 function invalidLogin() {
diff --git a/jams-server/src/main/resources/webapp/js/server-parameters.js b/jams-server/src/main/resources/webapp/js/server-parameters.js
index 2a64a6596ee863ee488e582db3571070b19b67c1..3c9f41de83ab4b0ed390f52d21bde344ec82638f 100644
--- a/jams-server/src/main/resources/webapp/js/server-parameters.js
+++ b/jams-server/src/main/resources/webapp/js/server-parameters.js
@@ -18,7 +18,6 @@
  *     along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-var type_int_name_input = ['deviceLifetime', 'userLifetime'];
 var callback = set_installation_response("search.html", true);
 
 $(document).ready(function () {
diff --git a/jams-server/src/main/resources/webapp/js/signup.js b/jams-server/src/main/resources/webapp/js/signup.js
index 2d237818d9739edb2fe176deab7c6362ccbbb77e..8f20f95ac9da1f6d61933f1d7b8c57b5d60c6b04 100644
--- a/jams-server/src/main/resources/webapp/js/signup.js
+++ b/jams-server/src/main/resources/webapp/js/signup.js
@@ -25,7 +25,6 @@ var date = new Date();
 var minutes = 15;
 
 checkAdminAccountStatus();
-checkAuthentication();
 
 $(".form-submit").click(function (event) {
   event.preventDefault();
@@ -95,9 +94,10 @@ function signinCallBackHandler(data, statusCode, jqXHR) {
 
     if (jqXHR.status == 200 && data.access_token != 'null' && (data.needsReset == false || data.needsReset == null)) {
     setJWT(data);
+    var tokenJSON = JSON.parse(atob(window.localStorage.getItem('access_token').split('.')[1]));
     // check server configuration status
     getServerConfigStatus();
-  }  else if (jqXHR.status == 200 && data.needsReset == true) {
+  }  else if (jqXHR.status == 200 && tokenJSON.oneTimePassword == true) {
       getServerConfigStatus();
       window.location.replace("new-password.html?username=" + credentials["username"]);
   }
diff --git a/jams-server/src/main/resources/webapp/js/user.js b/jams-server/src/main/resources/webapp/js/user.js
index 473360a896a355b6cb39579526a2d713429f7a77..ca0c9b35e47767f671ac0bdff12c854384cfee9f 100644
--- a/jams-server/src/main/resources/webapp/js/user.js
+++ b/jams-server/src/main/resources/webapp/js/user.js
@@ -399,7 +399,7 @@ function handleUserUpdate(){
     setTimeout(function() {
         ajaxApiCall(api_path_get_user_directory_search, 'GET', searchData, null, setUserInfoDataSource);
         ajaxApiCall(api_path_get_user_directory_search, 'GET', searchData, null, setUserExtendedData);
-    }, 300);
+    }, 500);
 }
 
 function handleFileSelect(evt) {
diff --git a/jams-server/src/main/resources/webapp/templates/search.html b/jams-server/src/main/resources/webapp/templates/search.html
index 33161729dedc0f57eb58cafeac46e849fbf55d0a..86378cf1f52c2edd0b8bb6dd8b2c90bbed6e3710 100644
--- a/jams-server/src/main/resources/webapp/templates/search.html
+++ b/jams-server/src/main/resources/webapp/templates/search.html
@@ -41,7 +41,6 @@
   <script src="../js/auth.js" charset="utf-8"></script>
   <script>
     $(function () {
-      checkAuthentication();
       $("#header").load("header.html");
       $("#footer").load("footer.html");
     });