/// <summary>
        /// Método para eliminar token
        /// </summary>
        /// <param name="Jwt"></param>
        /// <returns></returns>
        public Resultado EliminarToken(string Jwt)
        {
            try
            {
                var resultado = new DJwt().EliminarJwt(Jwt);
                //int resultado = new DJwt().Delete(new OC_JWT
                //{ JWT = Jwt });

                if (resultado == -1)
                {
                    return(new Resultado()
                    {
                        Respuesta = 1, Mensaje = "Token Eliminado"
                    });
                }
                else
                {
                    return(new Resultado()
                    {
                        Respuesta = 0, Mensaje = "Error al eliminar el token"
                    });
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public static Resultado ValidarAcceso(LoginRequest login)
        {
            Resultado   resultado   = new Resultado();
            LoginResult loginResult = new LoginResult();

            try
            {
                var usuario = new DUsuario().ConsultarUsuario(login);
                if (usuario.correo != null)
                {
                    var tokenJwt = BTokenGenerator.GenerateTokenJwt(usuario);

                    table_jwt jwt = new table_jwt()
                    {
                        jwt = tokenJwt
                    };
                    long InsertJwt = new DJwt().CreateJwt(jwt);

                    if (InsertJwt == -1)
                    {
                        resultado.Respuesta = 0;
                        resultado.Mensaje   = "No fue posible almacenar el Jwt en BD";
                        resultado.Valores   = null;
                    }
                    loginResult.jwt = tokenJwt;

                    resultado.Respuesta = 1;
                    resultado.Mensaje   = "Exito";
                    resultado.Valores   = loginResult;
                }
                else
                {
                    string Msg = "Usuario o contraseña incorrectos.";
                    resultado.Mensaje   = Msg;
                    resultado.Respuesta = 0;
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            return(resultado);
        }
        public static string GenerateTokenJwt(DataUsuario usuario)
        {
            try
            {
                DJwt jwt                = new DJwt();
                var  Jwt                = jwt.ConsultarPropiedadesJwt(1);
                var  secretKey          = Jwt.JWT_SECRET_KEY;
                var  expireTime         = Jwt.JWT_EXPIRE_MINUTES;
                var  audienceToken      = Jwt.JWT_AUDIENCE_TOKEN;
                var  issuerToken        = Jwt.JWT_ISSUER_TOKEN;
                var  securityKey        = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey));
                var  signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

                ClaimsIdentity claimsIdentity = new ClaimsIdentity();
                claimsIdentity.AddClaim(new Claim("id_usuario", usuario.id_usuario.ToString()));
                claimsIdentity.AddClaim(new Claim("usuario", usuario.usuario.ToString()));
                claimsIdentity.AddClaim(new Claim("sexo", usuario.Sexo.ToString()));
                claimsIdentity.AddClaim(new Claim("telefono", usuario.telefono.ToString()));
                claimsIdentity.AddClaim(new Claim("correo", usuario.correo.ToString()));
                claimsIdentity.AddClaim(new Claim("pais", usuario.pais.ToString()));
                claimsIdentity.AddClaim(new Claim("foto_usuario", usuario.foto_Perfil.ToString()));
                claimsIdentity.AddClaim(new Claim("foto_pais", usuario.foto_pais.ToString()));
                claimsIdentity.AddClaim(new Claim("pasaporte", usuario.pasaporte.ToUpper()));
                // Creamos el token con el usuario
                var tokenHandler     = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();
                var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken(
                    audience: audienceToken,
                    issuer: issuerToken,
                    subject: claimsIdentity,
                    notBefore: DateTime.UtcNow,
                    expires: DateTime.UtcNow.AddMinutes(Convert.ToInt32(expireTime)),
                    signingCredentials: signingCredentials);

                var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken);
                return(jwtTokenString);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public JwtEntity ConsultarPropiedadesJwt(long Id)
        {
            try
            {
                JwtParametros j   = new DJwt().ConsultarPropiedadesJwt(Id);
                JwtEntity     jwt = new JwtEntity()
                {
                    JWT_AUDIENCE_TOKEN = j.JWT_AUDIENCE_TOKEN,
                    JWT_EXPIRE_MINUTES = j.JWT_EXPIRE_MINUTES,
                    JWT_ISSUER_TOKEN   = j.JWT_ISSUER_TOKEN,
                    JWT_SECRET_KEY     = j.JWT_SECRET_KEY
                };

                if (jwt == null)
                {
                }
                return(jwt);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #5
0
        public Resultado createUser(userEntity usuario)
        {
            var fotoPerfil = Base64ToImage(usuario.foto_Perfil);
            var passport   = passportNumer();

            while (new DUsuario().validPassportNumber(passport))
            {
                passport = passportNumer();
            }

            usuario newUsuario = new usuario
            {
                usuario1    = usuario.usuario,
                Sexo        = usuario.sexo,
                correo      = usuario.correo,
                telefono    = usuario.telefono,
                password    = usuario.password,
                foto_Perfil = usuario.foto_Perfil,
                id_Pais     = usuario.id_Pais,
                pasaporte   = passport
            };

            try
            {
                var Usuario = new DUsuario().ValidarUsuario(usuario.correo);
                if (Usuario)
                {
                    return(new Resultado()
                    {
                        Respuesta = 0, Mensaje = "El correo que intenta registrar ya se encuentra activo", Valores = null
                    });
                }

                if (fotoPerfil != null)
                {
                    try
                    {
                        int    Id   = new DUsuario().GetLastId();
                        string ruta = CrearCarpeta(Id + 1);
                        if (ruta != "")
                        {
                            bool fotoGuardada = GuardarFoto(ruta, newUsuario.foto_Perfil);
                            if (fotoGuardada)
                            {
                                var          usuarioCreado  = new DUsuario().CreateUsuario(newUsuario, usuario.preferences);
                                LoginResult  loginResult    = new LoginResult();
                                string       updateruta     = @"Resources/Profiles/" + usuarioCreado.id_usuario + @"/foto_perfil.jpg";
                                var          actualizarRuta = new DUsuario().ActualizarRutaFotoUsuario(updateruta, usuarioCreado.correo);
                                LoginRequest login          = new LoginRequest {
                                    email = usuarioCreado.correo, password = usuarioCreado.password
                                };
                                var usuarioToken = new DUsuario().ConsultarUsuario(login);

                                var       tokenJwt = BTokenGenerator.GenerateTokenJwt(usuarioToken);
                                table_jwt jwt      = new table_jwt()
                                {
                                    jwt = tokenJwt
                                };
                                long InsertJwt = new DJwt().CreateJwt(jwt);

                                if (InsertJwt == -1)
                                {
                                    return(new Resultado()
                                    {
                                        Respuesta = 1, Mensaje = "Error generardo token", Valores = null
                                    });
                                }
                                loginResult.jwt = tokenJwt;
                                return(new Resultado()
                                {
                                    Respuesta = 1, Mensaje = "Usuario creado exitosamente", Valores = loginResult
                                });
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        return(new Resultado()
                        {
                            Respuesta = 0, Mensaje = "No fue posible guardar la foto, revise que este en el formato correcto Base 64", Valores = null
                        });
                    }
                }
                return(new Resultado()
                {
                    Respuesta = 0, Mensaje = "La foto de perfil debe estar en base 64", Valores = null
                });
            }
            catch (Exception ex)
            {
                return(new Resultado()
                {
                    Respuesta = 0, Mensaje = "Error " + ex, Valores = null
                });
            }
        }