excise token-based auth from ui

This commit is contained in:
John Mitchell
2018-01-11 18:06:21 -05:00
committed by adamscmRH
parent 1c2621cd60
commit 976766e4a3
5 changed files with 33 additions and 117 deletions

View File

@@ -374,7 +374,7 @@ angular
} }
}); });
if (!Authorization.getToken() || !Authorization.isUserLoggedIn()) { if (!Authorization.isUserLoggedIn()) {
// User not authenticated, redirect to login page // User not authenticated, redirect to login page
if (!/^\/(login|logout)/.test($location.path())) { if (!/^\/(login|logout)/.test($location.path())) {
$rootScope.preAuthUrl = $location.path(); $rootScope.preAuthUrl = $location.path();

View File

@@ -22,20 +22,20 @@ export default
return { return {
setToken: function (token, expires) { setToken: function (token, expires) {
// set the session cookie // set the session cookie
$cookies.remove('token'); // $cookies.remove('token');
$cookies.remove('token_expires'); $cookies.remove('token_expires');
$cookies.remove('userLoggedIn'); $cookies.remove('userLoggedIn');
if (token && !(/^"[a-f0-9]+"$/ig.test(token))) { // if (token && !(/^"[a-f0-9]+"$/ig.test(token))) {
$cookies.put('token', `"${token}"`); // $cookies.put('token', `"${token}"`);
} else { // } else {
$cookies.put('token', token); // $cookies.put('token', token);
} // }
$cookies.put('token_expires', expires); $cookies.put('token_expires', expires);
$cookies.put('userLoggedIn', true); $cookies.put('userLoggedIn', true);
$cookies.put('sessionExpired', false); $cookies.put('sessionExpired', false);
$rootScope.token = token; // $rootScope.token = token;
$rootScope.userLoggedIn = true; $rootScope.userLoggedIn = true;
$rootScope.token_expires = expires; $rootScope.token_expires = expires;
$rootScope.sessionExpired = false; $rootScope.sessionExpired = false;
@@ -49,17 +49,6 @@ export default
} }
return $rootScope.userLoggedIn; return $rootScope.userLoggedIn;
}, },
getToken: function () {
if ($rootScope.token) {
return $rootScope.token;
}
let token = $cookies.get('token');
return token ? token.replace(/"/g, '') : undefined;
},
retrieveToken: function (username, password) { retrieveToken: function (username, password) {
return $http({ return $http({
method: 'POST', method: 'POST',
@@ -77,10 +66,7 @@ export default
deleteToken: function () { deleteToken: function () {
return $http({ return $http({
method: 'DELETE', method: 'DELETE',
url: GetBasePath('authtoken'), url: GetBasePath('authtoken')
headers: {
'Authorization': 'Token ' + this.getToken()
}
}); });
}, },
@@ -125,7 +111,7 @@ export default
SocketService.disconnect(); SocketService.disconnect();
$cookies.remove('token_expires'); $cookies.remove('token_expires');
$cookies.remove('current_user'); $cookies.remove('current_user');
$cookies.remove('token'); // $cookies.remove('token');
$cookies.put('userLoggedIn', false); $cookies.put('userLoggedIn', false);
$cookies.put('sessionExpired', false); $cookies.put('sessionExpired', false);
$cookies.putObject('current_user', {}); $cookies.putObject('current_user', {});
@@ -134,7 +120,7 @@ export default
$rootScope.userLoggedIn = false; $rootScope.userLoggedIn = false;
$rootScope.sessionExpired = false; $rootScope.sessionExpired = false;
$rootScope.licenseMissing = true; $rootScope.licenseMissing = true;
$rootScope.token = null; // $rootScope.token = null;
$rootScope.token_expires = null; $rootScope.token_expires = null;
$rootScope.login_username = null; $rootScope.login_username = null;
$rootScope.login_password = null; $rootScope.login_password = null;
@@ -168,11 +154,7 @@ export default
getUser: function () { getUser: function () {
return $http({ return $http({
method: 'GET', method: 'GET',
url: GetBasePath('me'), url: GetBasePath('me')
headers: {
'Authorization': 'Token ' + this.getToken(),
"X-Auth-Token": 'Token ' + this.getToken()
}
}); });
}, },

View File

@@ -169,7 +169,7 @@ export default ['$log', '$cookies', '$compile', '$rootScope',
Authorization.retrieveToken(username, password) Authorization.retrieveToken(username, password)
.then(function (data) { .then(function (data) {
$('#login-modal').modal('hide'); $('#login-modal').modal('hide');
Authorization.setToken(data.data.token, data.data.expires); Authorization.setToken(data.data.expires);
scope.$emit('AuthorizationGetUser'); scope.$emit('AuthorizationGetUser');
}, },
function (data) { function (data) {

View File

@@ -55,8 +55,8 @@
*/ */
export default export default
['$http', '$rootScope', '$q', 'Authorization', ['$http', '$rootScope', '$q',
function ($http, $rootScope, $q, Authorization) { function ($http, $rootScope, $q) {
return { return {
headers: {}, headers: {},
@@ -113,150 +113,88 @@ export default
args = (args) ? args : {}; args = (args) ? args : {};
this.params = (args.params) ? args.params : null; this.params = (args.params) ? args.params : null;
this.pReplace(); this.pReplace();
var expired = this.checkExpired(), var expired = this.checkExpired();
token = Authorization.getToken();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
return $http({ return $http({
method: 'GET', method: 'GET',
url: this.url, url: this.url,
headers: this.headers, headers: this.headers,
params: this.params params: this.params
}); });
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
}, },
post: function (data) { post: function (data) {
var token = Authorization.getToken(), var expired = this.checkExpired();
expired = this.checkExpired();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
return $http({ return $http({
method: 'POST', method: 'POST',
url: this.url, url: this.url,
headers: this.headers, headers: this.headers,
data: data data: data
}); });
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
}, },
put: function (data) { put: function (data) {
var token = Authorization.getToken(), var expired = this.checkExpired();
expired = this.checkExpired();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
return $http({ return $http({
method: 'PUT', method: 'PUT',
url: this.url, url: this.url,
headers: this.headers, headers: this.headers,
data: data data: data
}); });
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
}, },
patch: function (data) { patch: function (data) {
var token = Authorization.getToken(), var expired = this.checkExpired();
expired = this.checkExpired();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
return $http({ return $http({
method: 'PATCH', method: 'PATCH',
url: this.url, url: this.url,
headers: this.headers, headers: this.headers,
data: data data: data
}); });
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
}, },
destroy: function (data) { destroy: function (data) {
var token = Authorization.getToken(), var expired = this.checkExpired();
expired = this.checkExpired();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
return $http({ return $http({
method: 'DELETE', method: 'DELETE',
url: this.url, url: this.url,
headers: this.headers, headers: this.headers,
data: data data: data
}); });
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
}, },
options: function (cache) { options: function (cache) {
var params, var params,
token = Authorization.getToken(),
expired = this.checkExpired(); expired = this.checkExpired();
if (expired) { if (expired) {
return this.createResponse({ return this.createResponse({
detail: 'Token is expired' detail: 'Session is expired'
}, 401); }, 401);
} else if (token) { } else {
this.setHeader({
Authorization: 'Token ' + token
});
this.setHeader({
"X-Auth-Token": 'Token ' + token
});
params = { params = {
method: 'OPTIONS', method: 'OPTIONS',
url: this.url, url: this.url,
@@ -265,10 +203,6 @@ export default
cache: (cache ? true : false) cache: (cache ? true : false)
}; };
return $http(params); return $http(params);
} else {
return this.createResponse({
detail: 'Invalid token'
}, 401);
} }
} }
}; };

View File

@@ -165,7 +165,7 @@ angular.module('Utilities', ['RestServices', 'Utilities'])
Alert('Conflict', data.conflict || "Resource currently in use."); Alert('Conflict', data.conflict || "Resource currently in use.");
} else if (status === 410) { } else if (status === 410) {
Alert('Deleted Object', 'The requested object was previously deleted and can no longer be accessed.'); Alert('Deleted Object', 'The requested object was previously deleted and can no longer be accessed.');
} else if ((status === 'Token is expired') || (status === 401 && data.detail && data.detail === 'Token is expired') || } else if ((status === 'Session is expired') || (status === 401 && data.detail && data.detail === 'Token is expired') ||
(status === 401 && data && data.detail && data.detail === 'Invalid token')) { (status === 401 && data && data.detail && data.detail === 'Invalid token')) {
if ($rootScope.sessionTimer) { if ($rootScope.sessionTimer) {
$rootScope.sessionTimer.expireSession('idle'); $rootScope.sessionTimer.expireSession('idle');