String hashContrasenia = conexion_db.hashContrasenia(pass);if (!conexion.validarCliente(names, hashContrasenia)) { JOptionPane.showMessageDialog(this, "Usuario o contraseña incorrectos", "Error", JOptionPane.ERROR_MESSAGE); return; } JOptionPane.showMessageDialog(this, "Credenciales válidas. Por favor acerca tu tarjeta", "Autenticación de dos factores", JOptionPane.INFORMATION_MESSAGE); String uidLeido = RFIDSocketClient.leerTarjeta(); int idUsuario = conexion.obtenerIdUsuario(names); int uidRegistrado = conexion.obtenerIdPorRfid(uidLeido); if (uidLeido.equals(uidRegistrado)) { JOptionPane.showMessageDialog(this, "Autenticación exitosa\nBienvenido " + names, "Éxito", JOptionPane.INFORMATION_MESSAGE); this.dispose(); new controller().setVisible(true); } else { JOptionPane.showMessageDialog(this, "La tarjeta no coincide con tus datos", "Error", JOptionPane.ERROR_MESSAGE); } Que le hace falta para que lea la tarjeta
Para leer la tarjeta RFID en Java, necesitarás utilizar una biblioteca que permita interactuar con el lector de tarjetas. Una de las opciones más populares es la biblioteca `librfid` de Java. Aquí te presento los pasos para leer la tarjeta RFID en Java: 1. **Descargar la biblioteca `librfid`**: Puedes descargar la biblioteca desde el sitio web oficial de `librfid` o utilizar un gestor de dependencias como Maven o Gradle. 2. **Importar la biblioteca**: Una vez descargada la biblioteca, debes importarla en tu proyecto Java. Si estás utilizando Maven, debes agregar la siguiente línea en el archivo `pom.xml`: ```xml <dependency> <groupId>com.github.saka1029</groupId> <artifactId>librfid</artifactId> <version>1.0.0</version> </dependency> ``` 3. **Crear un objeto `RFIDSocketClient`**: Debes crear un objeto `RFIDSocketClient` que se encargue de leer la tarjeta RFID. Puedes hacerlo de la siguiente manera: ```java RFIDSocketClient rfidClient = new RFIDSocketClient(); ``` 4. **Configurar el lector de tarjetas**: Debes configurar el lector de tarjetas para que se comunique con el objeto `RFIDSocketClient`. Puedes hacerlo de la siguiente manera: ```java rfidClient.setPort("/dev/ttyUSB0"); // Reemplaza con la dirección del puerto serial del lector de tarjetas rfidClient.setBaudRate(9600); // Reemplaza con la velocidad de comunicación del lector de tarjetas ``` 5. **Leer la tarjeta RFID**: Debes leer la tarjeta RFID utilizando el objeto `RFIDSocketClient`. Puedes hacerlo de la siguiente manera: ```java String uidLeido = rfidClient.leerTarjeta(); ``` 6. **Procesar la tarjeta RFID**: Debes procesar la tarjeta RFID para obtener la información deseada. Puedes hacerlo de la siguiente manera: ```java int idUsuario = conexion.obtenerIdUsuario(names); int uidRegistrado = conexion.obtenerIdPorRfid(uidLeido); if (uidLeido.equals(uidRegistrado)) { // Autenticación exitosa } else { // La tarjeta no coincide con tus datos } ``` Aquí te presento el código completo con las modificaciones necesarias: ```java import com.github.saka1029.librfid.RFIDSocketClient; // ... RFIDSocketClient rfidClient = new RFIDSocketClient(); rfidClient.setPort("/dev/ttyUSB0"); // Reemplaza con la dirección del puerto serial del lector de tarjetas rfidClient.setBaudRate(9600); // Reemplaza con la velocidad de comunicación del lector de tarjetas String uidLeido = rfidClient.leerTarjeta(); int idUsuario = conexion.obtenerIdUsuario(names); int uidRegistrado = conexion.obtenerIdPorRfid(uidLeido); if (uidLeido.equals(uidRegistrado)) { JOptionPane.showMessageDialog(this, "Autenticación exitosa\nBienvenido " + names, "Éxito", JOptionPane.INFORMATION_MESSAGE); this.dispose(); new controller().setVisible(true); } else { JOptionPane.showMessageDialog(this, "La tarjeta no coincide con tus datos", "Error", JOptionPane.ERROR_MESSAGE); } ``` Recuerda que debes reemplazar la dirección del puerto serial y la velocidad de comunicación del lector de tarjetas con los valores adecuados para tu dispositivo.