diff options
author | Kegan Dougal <kegan@matrix.org> | 2014-08-14 15:21:39 +0100 |
---|---|---|
committer | Kegan Dougal <kegan@matrix.org> | 2014-08-14 15:21:39 +0100 |
commit | 76005c44f7ec4ea28ba0d5eecccfa64f4df6d664 (patch) | |
tree | 5f075a3d8536821c489302426d19ed26392b9715 /webclient | |
parent | Send forbidden codes when doing login attempts. (diff) | |
download | synapse-76005c44f7ec4ea28ba0d5eecccfa64f4df6d664.tar.xz |
Added an access token interceptor to check unknown tokens.
Diffstat (limited to 'webclient')
-rw-r--r-- | webclient/app.js | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/webclient/app.js b/webclient/app.js index 651aeeaa77..f869309449 100644 --- a/webclient/app.js +++ b/webclient/app.js @@ -23,8 +23,8 @@ var matrixWebClient = angular.module('matrixWebClient', [ 'matrixService' ]); -matrixWebClient.config(['$routeProvider', - function($routeProvider) { +matrixWebClient.config(['$routeProvider', '$provide', '$httpProvider', + function($routeProvider, $provide, $httpProvider) { $routeProvider. when('/login', { templateUrl: 'login/login.html', @@ -41,6 +41,22 @@ matrixWebClient.config(['$routeProvider', otherwise({ redirectTo: '/rooms' }); + + $provide.factory('AccessTokenInterceptor', function ($q) { + return { + responseError: function(rejection) { + console.log("Rejection: " + JSON.stringify(rejection)); + if (rejection.status === 403 && "data" in rejection && + "errcode" in rejection.data && + rejection.data.errcode === "M_UNKNOWN_TOKEN") { + console.log("TODO: Got a 403 with an unknown token. Logging out.") + // TODO logout + } + return $q.reject(rejection); + } + }; + }); + $httpProvider.interceptors.push('AccessTokenInterceptor'); }]); matrixWebClient.run(['$location', 'matrixService' , function($location, matrixService) { @@ -75,4 +91,4 @@ matrixWebClient return function(text) { return $sce.trustAsHtml(text); }; - }]); \ No newline at end of file + }]); |