UNPKG

hurbis-ui-seguranca-v1-snapshot

Version:

Biblioteca de segurança para autenticação e autorização utilizando Auth0.

6 lines 9.95 kB
/** * @license hurbis-ui-seguranca-v1 v1.4.1 * (c) 2018 Hurbis Tecnologia da Informação Ltda. https://www.hurbis.com.br * License: MIT */ var hurbis;(function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(){function t(){}return t.inicializar=function(){n.comum.GestorModulo.registrarModulo(t.DEFINICAO);n.comum.GestorModulo.inicializarModulo({moduloDefinicao:t.DEFINICAO,objeto:["$rootScope","authManager","$hbsSegurancaConfig",function(n,t,i){var r=i.getConfiguracao();r.interceptador!=null&&r.interceptador.verificarAoAtualizar&&(t.checkAuthOnRefresh(),r.interceptador.tokenExpirou&&n.$on("tokenHasExpired",r.interceptador.tokenExpirou))}]})},t.DEFINICAO={nome:"hurbis.ui.seguranca",requisitos:["hurbis.comum","angular-jwt"]},t}();t.Modulo=i;i.inicializar()})(i=t.seguranca||(t.seguranca={}))})(t=n.ui||(n.ui={}))})(hurbis||(hurbis={})),function(n){var t;(function(n){var t;(function(n){"use strict";var t;(function(n){n[n.Facebook=0]="Facebook";n[n.Google=1]="Google"})(t=n.TipoConexaoSocial||(n.TipoConexaoSocial={}))})(t=n.seguranca||(n.seguranca={}))})(t=n.ui||(n.ui={}))}(hurbis||(hurbis={})),function(n){var t;(function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n}();n.UsuarioModel=t})(t=n.seguranca||(n.seguranca={}))})(t=n.ui||(n.ui={}))}(hurbis||(hurbis={})),function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(){function i(n,t){var i=this;this.jwtOptionsProvider=n;this.$httpProvider=t;this.getConfiguracao=function(){return i._configuracao};this.$get=[function(){return{getConfiguracao:i.getConfiguracao}}]}return i.prototype.configurar=function(n){this._configuracao=n;this.configurarInterceptador()},i.prototype.configurarInterceptador=function(){if(this._configuracao.interceptador!=null){var n={urlParam:this._configuracao.interceptador.nomeParametroUrl,tokenGetter:this._configuracao.interceptador.recuperarToken,whiteListedDomains:this._configuracao.interceptador.whiteListedDomains};this._configuracao.interceptador.loginUrl&&angular.extend(n,{loginPath:this._configuracao.interceptador.loginUrl});this._configuracao.interceptador.cabecalhoAutorizacao&&angular.extend(n,{authHeader:this._configuracao.interceptador.cabecalhoAutorizacao});this._configuracao.interceptador.cabecalhoAutorizacaoPrefixo&&angular.extend(n,{authPrefix:this._configuracao.interceptador.cabecalhoAutorizacaoPrefixo});this._configuracao.interceptador.naoAutenticadoUrl&&angular.extend(n,{unauthenticatedRedirectPath:this._configuracao.interceptador.naoAutenticadoUrl});this._configuracao.interceptador.naoAutenticadoRedirecionador&&angular.extend(n,{unauthenticatedRedirector:this._configuracao.interceptador.naoAutenticadoRedirecionador});this.jwtOptionsProvider.config(n);this.$httpProvider.interceptors.push("jwtInterceptor")}},i.inicializar=function(){n.comum.GestorModulo.registrarFuncionalidade({moduloDefinicao:t.Modulo.DEFINICAO,nome:"$hbsSegurancaConfig",tipo:n.comum.FuncionalidadeTipo.Provedor,objeto:["jwtOptionsProvider","$httpProvider",i]})},i}();t.ConfiguracaoProvider=i;i.inicializar()})(i=t.seguranca||(t.seguranca={}))})(t=n.ui||(n.ui={}))}(hurbis||(hurbis={})),function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(){function i(n,t,i,r){this.$q=n;this.$resource=t;this.jwtHelper=i;this.configuracao=r.getConfiguracao();this.broker=new auth0.WebAuth({domain:this.configuracao.dominio,clientID:this.configuracao.clientId})}return Object.defineProperty(i.prototype,"token",{get:function(){return localStorage.getItem(this.configuracao.cookie.nomeToken)},set:function(n){localStorage.setItem(this.configuracao.cookie.nomeToken,n)},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"tokenAcesso",{get:function(){return localStorage.getItem(this.configuracao.cookie.nomeTokenAcesso)},set:function(n){localStorage.setItem(this.configuracao.cookie.nomeTokenAcesso,n)},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"usuario",{get:function(){return JSON.parse(localStorage.getItem(this.configuracao.cookie.nomeProfile))||{}},set:function(n){localStorage.setItem(this.configuracao.cookie.nomeProfile,JSON.stringify(n))},enumerable:!0,configurable:!0}),i.prototype.consultarUsuario=function(n){var t=this;return this.$q(function(i,r){t.broker.client.userInfo(n,function(n,u){if(n){r(n);return}u.user_id=u.sub;u.username=u.nickname;t.configuracao.caminhoUserMetadata&&(u.user_metadata=u[t.configuracao.caminhoUserMetadata]);t.configuracao.caminhoAppMetadata&&(u.app_metadata=u[t.configuracao.caminhoAppMetadata]);i(u)})})},i.prototype.tokenExpirou=function(n){return(n===void 0&&(n=this.token),n==null)?!0:this.jwtHelper.isTokenExpired(n)},i.prototype.recuperarTipoConexaoSocial=function(n){switch(n){case t.TipoConexaoSocial.Google:return"google";default:return"facebook"}},i.prototype.loginSocial=function(n){var t=this;return this.$q(function(i,r){t.broker.popup.authorize({domain:t.configuracao.dominio,connection:t.recuperarTipoConexaoSocial(n),responseType:"token id_token",redirectUri:t.configuracao.callbackUrl},function(n,u){if(n){r(n);return}t.broker.parseHash({hash:u},function(n,u){if(n){r(n);return}t.token=u.idToken;t.tokenAcesso=u.accessToken;t.consultarUsuario(t.tokenAcesso).then(function(n){t.usuario=n;i(n)},function(n){t.token=null;t.tokenAcesso=null;r(n)})})})})},i.prototype.login=function(n,t,i){var r=this;return t===void 0&&(t=null),i===void 0&&(i=null),this.$q(function(u,f){var e={realm:r.configuracao.conexao,username:n.email,password:n.senha};e.audience=t!=null?t:r.configuracao.nomeRecurso;e.audience!=null&&(e.scope="openid"+(i!=null?" "+i.trim():""));r.broker.client.login(e,function(n,t){n?f(n):(r.token=t.idToken,r.tokenAcesso=t.accessToken,r.consultarUsuario(r.tokenAcesso).then(function(n){r.usuario=n;u(n)},function(n){r.token=null;r.tokenAcesso=null;f(n)}))})})},i.prototype.logout=function(n){localStorage.removeItem(this.configuracao.cookie.nomeToken);localStorage.removeItem(this.configuracao.cookie.nomeTokenAcesso);localStorage.removeItem(this.configuracao.cookie.nomeProfile);this.configuracao.gerenciador!=null&&localStorage.removeItem(this.configuracao.gerenciador.cookieNomeToken);n&&this.broker.logout({returnTo:this.configuracao.logoutUrl,clientID:this.configuracao.clientId})},i.prototype.validarUsuario=function(n,t){var i=this;return this.$q(function(r,u){i.broker.client.login({realm:i.configuracao.conexao,username:n,password:t},function(n){n?u(n):r(!0)})})},i.prototype.solicitarNovaSenha=function(n){var t=this;return this.$q(function(i,r){t.broker.changePassword({connection:t.configuracao.conexao,email:n},function(n,t){n?r(n):i(t)})})},i.inicializar=function(){n.comum.GestorModulo.registrarFuncionalidade({moduloDefinicao:t.Modulo.DEFINICAO,nome:"$hbsSeguranca",tipo:n.comum.FuncionalidadeTipo.Servico,objeto:["$q","$resource","jwtHelper","$hbsSegurancaConfig",i]})},i}();t.AutenticacaoService=i;i.inicializar()})(i=t.seguranca||(t.seguranca={}))})(t=n.ui||(n.ui={}))}(hurbis||(hurbis={})),function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(){function i(n,t,i,r){this.$resource=n;this.jwtHelper=t;this.$q=i;this.configuracao=r.getConfiguracao();this.enderecoUsuario=this.configuracao.gerenciador.enderecoApi+"users/:id";this.brokerAutenticador=new auth0.WebAuth({domain:this.configuracao.dominio,clientID:this.configuracao.gerenciador.clientId})}return Object.defineProperty(i.prototype,"tokenManutencao",{get:function(){return localStorage.getItem(this.configuracao.gerenciador.cookieNomeToken)},set:function(n){localStorage.setItem(this.configuracao.gerenciador.cookieNomeToken,n)},enumerable:!0,configurable:!0}),i.prototype.iniciarRecursosAsync=function(){var n=this;return this.$q(function(t,i){if(n.tokenManutencao!=null&&!n.jwtHelper.isTokenExpired(n.tokenManutencao)){n.dadoUsuario==null&&n.iniciarServicoUsuario();t();return}n.dadoUsuario=null;n.brokerAutenticador.client.oauthToken({audience:n.configuracao.gerenciador.enderecoApi,client_secret:n.configuracao.gerenciador.clientSecret,grantType:"client_credentials"},function(r,u){if(r){i(r);return}n.tokenManutencao=u.accessToken;n.iniciarServicoUsuario();t()})})},i.prototype.iniciarServicoUsuario=function(){var n={Authorization:"Bearer "+this.tokenManutencao};this.dadoUsuario=this.$resource(this.enderecoUsuario,{id:"@id"},{get:{method:"GET",headers:n},save:{method:"POST",headers:n},atualizar:{method:"PATCH",headers:n}})},i.prototype.cadastrarUsuario=function(n,t){var i=this;return t===void 0&&(t=!1),this.$q(function(r,u){i.iniciarRecursosAsync().then(function(){var f={connection:i.configuracao.conexao,email:n.email,password:n.senha,email_verified:!t,verify_email:t,user_metadata:{nome:n.nome,data_nascimento:n.dataNascimento.toJSON(),sexo:n.sexo,foto_url:n.fotoURL}};i.dadoUsuario.save(null,f,function(n){r(n)},function(n){u(n)})},function(n){u(n)})})},i.prototype.atualizarUsuario=function(n){var t=this;return this.$q(function(i,r){t.iniciarRecursosAsync().then(function(){var u={client_id:t.configuracao.clientId,connection:t.configuracao.conexao,email:n.email,user_metadata:{nome:n.nome,data_nascimento:n.dataNascimento.toJSON(),sexo:n.sexo,foto_url:n.fotoURL}};t.dadoUsuario.atualizar({id:n.autorizadorUsuarioId},u,function(n){i(n)},function(n){r(n)})},function(n){r(n)})})},i.prototype.alterarSenha=function(n,t){var i=this;return this.$q(function(r,u){i.iniciarRecursosAsync().then(function(){var f={client_id:i.configuracao.clientId,connection:i.configuracao.conexao,password:t};i.dadoUsuario.atualizar({id:n},f,function(n){r(n)},function(n){u(n)})},function(n){u(n)})})},i.inicializar=function(){n.comum.GestorModulo.registrarFuncionalidade({moduloDefinicao:t.Modulo.DEFINICAO,nome:"$hbsSegurancaManutencao",tipo:n.comum.FuncionalidadeTipo.Servico,objeto:["$resource","jwtHelper","$q","$hbsSegurancaConfig",i]})},i}();t.ManutencaoService=i;i.inicializar()})(i=t.seguranca||(t.seguranca={}))})(t=n.ui||(n.ui={}))}(hurbis||(hurbis={}));