Saltar al contenido

Cómo validar contraseña usando express-validator npm

Este artículo ha sido evaluado por nuestros expertos así se asegura la exactitud de nuestro tutorial.

Solución:

El enlace al que te refieres tiene casi 3 años. Desde entonces, la API de validator cambió.

Para comparar con una expresión regular, utilice .matches():

req.check("password", "...").matches(/^(?=.*d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]8,$/, "i");

Creo que la respuesta aceptada está desactualizada. RegExp y express-validator no son las mejores formas de validar contraseñas en 2017, ya que la oscuridad de las expresiones regulares hace que la aplicación no se pueda mantener y sea propensa a errores.

El validador de contraseñas facilita la definición de reglas de contraseñas y su mantenimiento. Aquí hay una muestra:

var passwordValidator = require('password-validator');

var schema = new passwordValidator();

schema
  .is().min(8)
  .is().max(100)
  .has().uppercase()
  .has().lowercase();

console.log(schema.validate('notvalid'); // => false

PD: Soy el autor del validador de contraseñas.

La respuesta elegida está incompleta ya que le falta la validación de los caracteres especiales. La respuesta correcta debería ser:

req.checkBody("password", "Password must include one lowercase character, one uppercase character, a number, and a special character.").matches(/^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).8,$/, "i");

La única diferencia real es que agregué el (?=.*[^a-zA-Z0-9]) expresión que asegura que un usuario está usando un carácter que no es un número o una letra.

valoraciones y comentarios

Si piensas que te ha resultado de provecho nuestro post, sería de mucha ayuda si lo compartes con más programadores de esta forma contrubuyes a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *