Esempio n. 1
0
        public IHttpActionResult RefreshUsuario([FromBody] TokenModel payload)
        {
            Negocio.Administracion.Usuario boUsuario = new Negocio.Administracion.Usuario();
            var            principal = TokenGenerator.GetPrincipalFromExpiredToken(payload.ApiToken);
            List <Usuario> usuarios;

            boUsuario.ObtenerUsuario(new FiltroUsuario {
                Cedula = principal.Identity.Name.ToLower(), Includes = new string[] { "UsuarioDistribuidora.Distribuidora" }
            }, out usuarios);

            var savedRefreshToken = usuarios[0].RefreshToken;

            if (savedRefreshToken != payload.RefreshToken)
            {
                return(Unauthorized());
            }

            var newUsuario = usuarios[0];

            newUsuario.RefreshToken = TokenGenerator.GenerateRefreshToken();
            newUsuario.PushToken    = payload.PushToken;
            newUsuario.EsModificado = true;
            boUsuario.GuardarUsuario(new List <Usuario>()
            {
                newUsuario
            });
            newUsuario.Token = TokenGenerator.GenerateTokenJWT(newUsuario.Cedula.ToLower());

            // Envío de Notificación push dummy para validar el funcionamiento. Se envia en cada refresh
            if (!string.IsNullOrEmpty(usuarios[0].PushToken))
            {
                Api.Firebase.Integrador.PushNotification push = new Firebase.Integrador.PushNotification();
                Task.Run(() => push.ProcesoPush(new PrivilegioUsuarioDistribuidora()
                {
                    Proceso = Entidad.Enums.ProcesoPrivilegioUsuarioDistribuidora.AsignaActualiza,
                    IdUsuarioDistribuidora = 1
                }));
            }
            return(Ok(newUsuario));
        }
Esempio n. 2
0
        public IHttpActionResult AutenticarUsuario(LoginModel login)
        {
            if (login == null || string.IsNullOrEmpty(login.NombreUsuario) || string.IsNullOrEmpty(login.Pass))
            {
                return(Unauthorized());
            }

            Negocio.Seguridad.Seguridad    boSeguridad = new Negocio.Seguridad.Seguridad();
            Negocio.Administracion.Usuario boUsuario   = new Negocio.Administracion.Usuario();

            if (boSeguridad.ValidarUsuario(login.NombreUsuario, login.Pass))
            {
                List <Usuario> usuarios;
                boUsuario.ObtenerUsuario(new FiltroUsuario {
                    Cedula = login.NombreUsuario.ToLower(), Includes = new string[] { "UsuarioDistribuidora.Distribuidora" }
                }, out usuarios);
                var usuario = usuarios.FirstOrDefault();
                usuario.RefreshToken = TokenGenerator.GenerateRefreshToken();
                usuario.PushToken    = login.PushToken;
                usuario.EsModificado = true;
                boUsuario.GuardarUsuario(new List <Usuario>()
                {
                    usuario
                });
                usuario.Token = TokenGenerator.GenerateTokenJWT(login.NombreUsuario.ToLower());

                //if (!string.IsNullOrEmpty(usuario.PushToken))
                //{
                //Api.Firebase.Integrador.PushNotification push = new Firebase.Integrador.PushNotification();
                //Task.Run(() => push.SendPushAsync(usuario.PushToken, $"{usuario.Nombre} {usuario.Apellido}"));
                return(Ok(usuario));
            }
            else
            {
                return(Unauthorized());
            }
        }