Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Cadastro e Login - #22 Validate User Active

10/11/2018

Nesse 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!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Cadastro e Login - #21 Ajax
Hoje vamos inserir no nosso projeto o Ajax para que possamos oferecer ao nosso usuário uma experiência melhor com as respostas do sistema.
Saiba mais!
Cadastro e Login - #23 Verify Attempt Login
Neste vídeo vamos aprender como guardar a quantidade de tentativas errôneas de login executadas pelo usuário do site e bloquear caso ultrapasse o máximo.
Saiba mais!
Cadastro e Login
Neste curso vamos aprender a criar um sistema completo de cadastro e login.
Saiba mais!