Detect when the user access token is no more valid and log the user out in this case
parent
613e468b89
commit
7143f358f1
|
@ -55,8 +55,14 @@ angular.module('MatrixWebClientController', ['matrixService'])
|
||||||
|
|
||||||
// And go to the login page
|
// And go to the login page
|
||||||
$location.path("login");
|
$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();
|
||||||
|
});
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('matrixService', [])
|
angular.module('matrixService', [])
|
||||||
.factory('matrixService', ['$http', '$q', function($http, $q) {
|
.factory('matrixService', ['$http', '$q', '$rootScope', function($http, $q, $rootScope) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Permanent storage of user information
|
* Permanent storage of user information
|
||||||
|
@ -60,7 +60,6 @@ angular.module('matrixService', [])
|
||||||
headers: headers
|
headers: headers
|
||||||
})
|
})
|
||||||
.success(function(data, status, headers, config) {
|
.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);
|
deferred.resolve(data, status, headers, config);
|
||||||
})
|
})
|
||||||
.error(function(data, status, headers, config) {
|
.error(function(data, status, headers, config) {
|
||||||
|
@ -70,6 +69,11 @@ angular.module('matrixService', [])
|
||||||
reason = JSON.stringify(data);
|
reason = JSON.stringify(data);
|
||||||
}
|
}
|
||||||
deferred.reject(reason, data, status, headers, config);
|
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;
|
return deferred.promise;
|
||||||
|
@ -301,6 +305,12 @@ angular.module('matrixService', [])
|
||||||
return doBaseRequest(config.identityServer, "POST", path, {}, data, headers);
|
return doBaseRequest(config.identityServer, "POST", path, {}, data, headers);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
testLogin: function() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
/****** Permanent storage of user information ******/
|
/****** Permanent storage of user information ******/
|
||||||
|
|
||||||
// Returns the current config
|
// Returns the current config
|
||||||
|
|
Loading…
Reference in New Issue