/// <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; } }
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; } }
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 }); } }