Este módulo é o ponto de entrada do BarberBot. Aqui ficam as rotinas de login, validação de sessão, recuperação de senha, redirecionamento para o painel e as regras iniciais de acesso/bloqueio.
📁 Estrutura (conforme pasta /sistema)
- PASTA
painel/— painel administrativo. - PASTA
painel_cliente/— painel do cliente/profissional. - PASTA
css/— estilos do sistema (login/recuperação/bloqueio). - PASTA
dompdf/— biblioteca PDF (relatórios/recibos). - ARQUIVO
index.php— login do painel (admin/atendente) → envia paraautenticar.php. - ARQUIVO
acesso.php— login do cliente/profissional → envia paraautenticar_cliente.php. - ARQUIVO
autenticar.php— autenticação do painel (tabelausuarios). - ARQUIVO
autenticar_cliente.php— autenticação do cliente (tabelaclientes). - ARQUIVO
bloqueio.php— tela/rotina de bloqueio por regra (assinatura/permissão/status). - ARQUIVO
recuperar-senha.php— recuperação de senha (painel). - ARQUIVO
recuperar-senha_cliente.php— recuperação de senha (cliente). - ARQUIVO
conexao.php— conexão PDO + configs globais.
Leitura real do ZIP: existem duas telas de login (admin e cliente) com endpoints diferentes:
index.php → autenticar.php e acesso.php → autenticar_cliente.php.
🔐 Fluxos reais de login (admin x cliente)
1) Painel (admin/atendente)
- Usuário acessa
/sistema/index.php. - Form envia
POSTpara/sistema/autenticar.php. - O script consulta
usuarios(login por e-mail/CPF) e valida senha compassword_verify(). - Em sucesso, grava sessão:
$_SESSION['id']$_SESSION['nivel']$_SESSION['cpf_usuario'],$_SESSION['imagem_usuario'],$_SESSION['email_usuario']$_SESSION['aut_token_1010'](token fixo do painel)
- Redireciona para
/sistema/painel/.
2) Painel do Cliente/Profissional
- Usuário acessa
/sistema/acesso.php. - Form envia
POSTpara/sistema/autenticar_cliente.php. - O script consulta
clientes(login por telefone) e valida senha compassword_verify(). - Em sucesso, grava sessão:
$_SESSION['id']$_SESSION['nome']$_SESSION['aut_token_505052022'](token fixo do painel_cliente)
- Redireciona para
/sistema/painel_cliente/.
Importante: o login usa
$_SESSION['flash'] para mensagens na tela (sucesso/erro).
Se você mudar textos/fluxos, mantenha o padrão do “flash” pra não quebrar UX.
🧠 Sessão e tokens (checagem em verificar.php)
Nos dois painéis existe uma checagem dupla: id + token fixo. Esses tokens são validados em:
/sistema/painel/verificar.php→ exige$_SESSION['aut_token_1010']/sistema/painel_cliente/verificar.php→ exige$_SESSION['aut_token_505052022']
Ponto crítico: token “hard-coded” funciona, mas é fraco se exposto.
Melhoria típica: gerar token por sessão/usuário e renovar no login (ou mover esse valor para config fora do repositório).
🧾 Arquivos principais (o que cada um faz)
index.php (login painel)
- UI de login (admin/atendente) e envio para
autenticar.php. - Apresenta mensagens via
$_SESSION['flash'].
acesso.php (login cliente)
- UI de login do cliente/profissional e envio para
autenticar_cliente.php. - Também usa “flash” para retorno visual.
autenticar.php
- Valida credenciais no
usuarios(login por e-mail/CPF). - Senha:
password_verify()(hash emsenha_crip). - Cria sessão e redireciona para o painel.
autenticar_cliente.php
- Valida credenciais no
clientes(login por telefone). - Senha:
password_verify(). - Cria sessão e redireciona para o painel_cliente.
bloqueio.php
- Tela de bloqueio (assinatura, permissão, status, etc.).
- Normalmente acessada por redirecionamento após checagens de regra.
recuperar-senha.php / recuperar-senha_cliente.php
- Fluxo de reset (solicita dado do usuário e dispara recuperação).
- Boa prática: token com expiração e uso único.
conexao.php
- Centraliza PDO + configs globais usadas por todo o sistema.
- Qualquer refactor deve manter compatibilidade com os includes do painel e painel_cliente.
🛡️ Pontos críticos + boas práticas (produção)
- PDO sempre parametrizado (prepare + bind) — evita SQL Injection.
- Senha com hash forte:
password_hash/password_verify(já está assim no ZIP). - Session hardening: regenerar ID no login, cookies HttpOnly/Secure (HTTPS).
- Rate-limit em login/recuperação (anti brute-force).
- Logs em falhas/bloqueios (auditoria e suporte).
Dica de manutenção: mantenha “contratos” simples de retorno (ex.: flash e redirects).
Isso evita quebrar UX ao mexer na autenticação.
✅ Checklist rápido
- Conferir se
autenticar.phpepainel/verificar.phpusam o mesmo token (aut_token_1010). - Conferir se
autenticar_cliente.phpepainel_cliente/verificar.phpusam o mesmo token (aut_token_505052022). - Se mexer no login, manter
$_SESSION['flash']pra mensagens. - Garantir
session_start()nos pontos certos (login, verificar, logout). - Se colocar bloqueio por assinatura/permissão, centralizar o redirecionamento em um “guard” (evita duplicação).