diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 73fe5a4..c8a7969 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -189,6 +189,31 @@
                   console.log(error);
                 });
               },
+              testPassword: function(username, password){
+                // Calls /login without the current session to verify the given password is correct
+                // ignore the interceptor logout on a bad password
+                DataService.ignoreHttpError = true;
+                var deferred = $q.defer();
+                $http({
+                  method: 'POST',
+                  url: DataService.getHost() + "/login",
+                  headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json'
+                  },
+                  withCredentials: false,
+                  data: JSON.stringify({"data": [username, password]})
+                }).then(function(response){
+                  var json = JSON.stringify(response.data);
+                  var content = JSON.parse(json);
+                  DataService.ignoreHttpError = false;
+                  deferred.resolve(content.data);
+                }, function(error){
+                  DataService.ignoreHttpError = false;
+                  deferred.reject(error);
+                });
+                return deferred.promise;
+              },
               logout: function(callback){
                 $http({
                   method: 'POST',
diff --git a/app/common/services/apiInterceptor.js b/app/common/services/apiInterceptor.js
index 8bbb6f4..304d723 100644
--- a/app/common/services/apiInterceptor.js
+++ b/app/common/services/apiInterceptor.js
@@ -43,16 +43,19 @@
                     return response;
                 },
                 'responseError': function(rejection){
-                    // If unauthorized, log out
-                    if (rejection.status == 401){
-                        if (dataService.path != '/login'){
-                            $rootScope.$emit('timedout-user', {});
+                    if (dataService.ignoreHttpError === false)
+                    {
+                        // If unauthorized, log out
+                        if (rejection.status == 401){
+                            if (dataService.path != '/login'){
+                                $rootScope.$emit('timedout-user', {});
+                            }
+                        } else if (rejection.status == -1){
+                            dataService.server_unreachable = true;
                         }
-                    } else if (rejection.status == -1){
-                        dataService.server_unreachable = true;
-                    }
 
-                    dataService.loading = false;
+                        dataService.loading = false;
+                    }
                     return $q.reject(rejection);
                 }
             };
diff --git a/app/common/services/dataService.js b/app/common/services/dataService.js
index 0553bf6..2672c0e 100644
--- a/app/common/services/dataService.js
+++ b/app/common/services/dataService.js
@@ -33,7 +33,7 @@
             this.hostname = "";
             this.mac_address = "";
             this.remote_window_active = false;
-
+            this.ignoreHttpError = false;
             this.getServerId = function(){
                  return this.host.replace(/^https?\:\/\//ig,"");
             }
