Detect when the user access token is no more valid and log the user out in this case

This commit is contained in:
Emmanuel ROHEE 2014-08-14 14:59:33 +02:00
parent 613e468b89
commit 7143f358f1
2 changed files with 20 additions and 4 deletions

View file

@ -55,8 +55,14 @@ angular.module('MatrixWebClientController', ['matrixService'])
// And go to the login page
$location.path("login");
};
};
// Listen to the event indicating that the access token is no more valid.
// In this case, the user needs to log in again.
$scope.$on("M_UNKNOWN_TOKEN", function() {
console.log("Invalid access token -> log user out");
$scope.logout();
});
}]);

View file

@ -17,7 +17,7 @@ limitations under the License.
'use strict';
angular.module('matrixService', [])
.factory('matrixService', ['$http', '$q', function($http, $q) {
.factory('matrixService', ['$http', '$q', '$rootScope', function($http, $q, $rootScope) {
/*
* Permanent storage of user information
@ -60,7 +60,6 @@ angular.module('matrixService', [])
headers: headers
})
.success(function(data, status, headers, config) {
// @TODO: We could detect a bad access token here and make an automatic logout
deferred.resolve(data, status, headers, config);
})
.error(function(data, status, headers, config) {
@ -70,6 +69,11 @@ angular.module('matrixService', [])
reason = JSON.stringify(data);
}
deferred.reject(reason, data, status, headers, config);
if (403 === status && "M_UNKNOWN_TOKEN" === data.errcode) {
// The access token is no more valid, broadcast the issue
$rootScope.$broadcast("M_UNKNOWN_TOKEN");
}
});
return deferred.promise;
@ -301,6 +305,12 @@ angular.module('matrixService', [])
return doBaseRequest(config.identityServer, "POST", path, {}, data, headers);
},
//
testLogin: function() {
},
/****** Permanent storage of user information ******/
// Returns the current config