From 451be5f27783c6338d111f257f6a9745c8965ead Mon Sep 17 00:00:00 2001 From: isaacmsl Date: Wed, 30 Sep 2020 16:12:50 -0300 Subject: [PATCH] Classe TokenAuthorization refatorada --- client.js | 103 ++++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 57 deletions(-) diff --git a/client.js b/client.js index 00e5a65..ac9f381 100644 --- a/client.js +++ b/client.js @@ -1,84 +1,73 @@ - /** * Classe que representa um token de autorização. * - * @constructor - * - * @param {string} token - A sequência de caracteres que representa o Token. + * @param {string} value - A sequência de caracteres que representa o Token. * @param {number} expirationTime - Número de segundos que o token durará. * @param {string} scope - A lista de escopos (separados por espaço) que foi autorizado pelo usuário. */ -var Token = function(value, expirationTimeInSeconds, scope) { - - /* Atributos */ +class TokenAuthorization { - var value = value; - var startTime = new Date().getTime(); // O valor em milissegundos. - var finishTime = new Date(startTime + expirationTimeInSeconds * 1000); // O objeto Date. - var scope = scope; - - // Cria os cookies para o token, seu momento da expiração e seus escopos. - - if (!Cookies.get('suapToken')) { - Cookies.set('suapToken', value, { expires: finishTime}); - } else { - value = Cookies.get('suapToken'); - } + constructor(value, expirationTimeInSeconds, scope) { - if (!Cookies.get('suapTokenExpirationTime')) { - Cookies.set('suapTokenExpirationTime', finishTime, { expires: finishTime}); - } else { - finishTime = Cookies.get('suapTokenExpirationTime'); - } + const EXISTING_SUAP_TOKEN = Cookies.get('suapToken'); + const EXISTING_SUAP_EXP_TIME = Cookies.get('suapTokenExpirationTime'); + const EXISTING_SUAP_SCOPE = Cookies.get('suapScope'); - if (!Cookies.get('suapScope')) { - Cookies.set('suapScope', scope, { expires: finishTime}); - } else { - scope = Cookies.get('suapScope'); - } + /** + * Alguns atributos recebem valores condicionais. Caso o cookie relacionado ao atribuito não + * exista previamente, o seu valor vai ser o do parâmetro vindo do construtor. + */ + this.value = EXISTING_SUAP_TOKEN || value; + this.startTime = new Date().getTime(); // O valor em milissegundos. + this.finishTime = EXISTING_SUAP_EXP_TIME || new Date(this.startTime + expirationTimeInSeconds * 1000); + this.scope = EXISTING_SUAP_SCOPE || scope; - this.getValue = function() { - return value; - }; + // Caso um dos cookies não exista previamente, crie-o. - this.getExpirationTime = function() { - return finishTime; - }; + if (!EXISTING_SUAP_TOKEN) { + Cookies.set('suapToken', this.value, { expires: this.finishTime }); + } - this.getScope = function() { - return scope; - }; + if (!EXISTING_SUAP_EXP_TIME) { + Cookies.set('suapTokenExpirationTime', this.finishTime, { expires: this.finishTime }); + } - this.isValid = function() { - if (Cookies.get('suapToken') && value != null) { - return true; + if (!EXISTING_SUAP_SCOPE) { + Cookies.set('suapScope', this.scope, { expires: this.finishTime }); } - return false; + + } + + getValue() { + return this.value; + } + + getExpirationTime = function () { + return this.finishTime; }; - this.revoke = function() { + getScope = function () { + return this.scope; + }; - value = null; - startTime = null; - finishTime = null; + isValid = function () { + return Cookies.get('suapToken') && this.value; + }; - if (Cookies.get('suapToken')){ - Cookies.remove('suapToken'); - } + revoke = function () { - if (Cookies.get('suapTokenExpirationTime')){ - Cookies.remove('suapTokenExpirationTime'); - } + this.value = null; + this.startTime = null; + this.finishTime = null; - if (Cookies.get('suapScope')){ - Cookies.remove('suapScope'); - } + Cookies.remove('suapToken'); + Cookies.remove('suapTokenExpirationTime'); + Cookies.remove('suapScope'); }; }; - /** * Classe principal do SDK e seu construtor, que inicializa os principais atributos. * @@ -170,7 +159,7 @@ var Token = function(value, expirationTimeInSeconds, scope) { * */ this.init = function() { - token = new Token(extractToken(), extractDuration(), extractScope()); + token = new TokenAuthorization(extractToken(), extractDuration(), extractScope()); dataJSON = {}; };