Cadastro e Login - #22 Validate User Active
10/11/2018Nesse vídeo-tutorial vamos iniciar o desenvolvimento do controller de login fazendo a verificação do hash de login.
Controller de Login com PHP
Vamos chamar primeiramente no nosso controllerLogin.php alguns métodos já utilizados no cadastro, afinal uma das vantagens da orientação a objetos é o reaproveitamento de código. Vamos começar assim:
<?php
$validate=new Classes\ClassValidate();
$validate->validateFields($_POST);
$validate->validateEmail($email);
$validate->validateIssetEmail($email,"login");
$validate->validateStrongSenha($senha);
$validate->validateSenha($email,$senha);
var_dump($validate->getErro());
Agora vamos trabalhar na classe ClassPassword criando o método de verificação do hash da senha pra verificar se bate com a do banco de dados.
#Verificar se o hash da senha está correto
public function verifyHash($email,$senha)
{
$hashDb=$this->db->getDataUser($email);
return password_verify($senha,$hashDb["data"]["senha"]);
}
Posteriormente dentro da pasta models vamos criar a ClassLogin.php. Ela ficará responsável por acessar o banco de dados e nos retornar o boolean true or false de acordo com a verificação senha/hash.
<?php
namespace Models;
class ClassLogin extends ClassCrud{
#Retorna os dados do usuário
public function getDataUser($email)
{
$b=$this->selectDB(
"*",
"users",
"where email=?",
array(
$email
)
);
$f=$b->fetch(\PDO::FETCH_ASSOC);
$r=$b->rowCount();
return $arrData=[
"data"=>$f,
"rows"=>$r
];
}
}
Por fim vamos implementar o método de validação de senha dentro da ClassValidate:
#Verificação da senha digitada com o hash no banco de dados
public function validateSenha($email,$senha)
{
if($this->password->verifyHash($email,$senha)){
return true;
}else{
$this->setErro("Usuário ou Senha Inválidos!");
return false;
}
}
Sucesso nos códigos e na vida!