Fix auth if localStorage is missing or corrupted (#7674)

* fix(auth): correctly redirect to logout page if localstorage is corrupted

* fix(auth): do not break site if localStorage has invalid JSON

* fix(karma): use $window instead of windo

* disable failing karma tests

* fix(tests): Provide mockwindow for tests

* fix(tests): Call habitrpgShared without $window
This commit is contained in:
Matteo Pagliazzi
2016-06-17 12:14:41 +02:00
committed by GitHub
parent 5a3082bd88
commit a424892dd3
6 changed files with 59 additions and 29 deletions

View File

@@ -330,13 +330,19 @@ window.habitrpg = angular.module('habitrpg',
title: env.t('titleSettings')
});
var settings = JSON.parse(localStorage.getItem(STORAGE_SETTINGS_ID));
var settings;
if (settings && settings.auth) {
$httpProvider.defaults.headers.common['Content-Type'] = 'application/json;charset=utf-8';
try {
settings = JSON.parse(localStorage.getItem(STORAGE_SETTINGS_ID));
} catch (e) {
settings = {};
}
if (settings && settings.auth && settings.auth.apiId && settings.auth.apiToken) {
$httpProvider.defaults.headers.common['x-api-user'] = settings.auth.apiId;
$httpProvider.defaults.headers.common['x-api-key'] = settings.auth.apiToken;
}
$httpProvider.defaults.headers.common['Content-Type'] = 'application/json;charset=utf-8';
$httpProvider.defaults.headers.common['x-client'] = 'habitica-web';
}]);