jueves, 26 de noviembre de 2015

CakePHP Simple Authentication and Authorization Application error en login()

Para los que estéis siguiendo el tutorial de CakePHP 2.x y estéis desarrollando el ejemmplo de Auth Simple Simple Authentication and Authorization Application. Cuando he seguido el ejemplo me he topado con que una vez que he añadido un nuevo usuario a la base de datos y he intentado logarme con ese nuevo usuario/password, la aplicación me rechazaba con el mensaje "Invalid username or password, try again"
Este error lo he solucionado aumentando el tamaño de almacenamiento del VARCHAR del campo password en la tabla Users, ya que al hacer el hash de la password con Blowfish, la base de datos trunca el hash a 40 caracteres, y por consiguiente, no se podía volver a autenticar el usuario al no cuadrar las passwords. El código SQL que hay que modificar para la tabla users es el siguiente:
CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    password VARCHAR(255),
    role VARCHAR(20),
    created DATETIME DEFAULT NULL,
    modified DATETIME DEFAULT NULL
);