sábado, 1 de junio de 2013

YII - Autenticación de usuario

Lo primero que debemos hacer es crear la tabla en la base de datos

CREATE TABLE usuario (
Id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(15) NOT NULL,
password VARCHAR(15) NOT NULL
)

Ahora creamos el modelo a través de YII, para esto, ingresamos a través de nuestra URL y le agregamos el valor ?r=gii, por ejemplo http://localhost/yii/index.php?r=gii



Ahora creamos el CRUD



Ahora debemos entrar a editar /protected/components/UserIdentity.php y reemplazar la clase con lo siguiente:


public function authenticate()  {
        $username=strtolower($this->username);
        $user=Usuario::model()->find('LOWER(username)=?',array($username));
        
        if($user===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        else if(!$user->validatePassword($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else{
            $this->_id=$user->id;
            $this->username=$user->username;
            $this->errorCode=self::ERROR_NONE;
        }
        
        return $this->errorCode==self::ERROR_NONE;
    }
    
    public function getId(){
        return $this->_id;
    }


Luego en /protected/models/Usuario.php debemos agregar al final del fichero, las funciones para validar el usuario:


public function validatePassword($password){
return $this->hashPassword($password)===$this->password;
}
 
public function hashPassword($password){
return md5($password);
}

0 comentarios:

Publicar un comentario