Que tal?
Rato sin molestarlos.
Vengo con una pregunta de crucigrama que me ha entretenido esta tarde,
y no he dado con la respuesta, ni leyendo hilos de casos similares.
Les cuento:
Estoy revisando el framework Yii, y usando las aplicaciones demo que trae
tiene unos usuarios por defecto que están contenidos en un array en un
archivo php.
Cuando se loguea con estos usuarios del array, todo es hermoso,
ingresa y valida si el password es o no válido. (Es así pues validan a punta de if, else)
Luego, leí el modo para reemplazar el logueo con este array por
un logueo a través de la base de datos, implementé las funciones,
cree usuarios, en fin, todo el proceso, y ahora que intento el logueo
siempre informa de credenciales incorrectas.
Hice el paso a paso, y al parecer el detalle se encuentra en una función
de un Helper llamado CPasswordHelper, cuya función verifyPassword($password, $hash)
pues cuando realiza la verificación
Código PHP:
if (!$password || !preg_match('{^\$2[axy]\$(\d\d)\$[\./0-9A-Za-z]{22}}',$hash,$matches) ||
$matches[1]<4 || $matches[1]>31)
return false;
Evidentemente retorna false, pues $matches no obtiene las coincidencias
que debería darle el preg match, tal vez algo en la expresión regular
es la que de el inconveniente, pero como no estoy seguro, mejor
pregunto por acá, he de decir que todo el código lo saqué de la documentación
de yii.
Sí alguien le ha ocurrido lo mismo y me puede dar una mano,
o sí hay mentes curiosas que quieran revisar esto en conjunto,
estaré al tanto!
P.D: Otra solución podría ser no hacer uso del Helper, pero me interesa más
saber el porque no funciona como debería.
Gracias.
</saludo>