🚀 Gratuito • Verificação Facial por IA

Verificação Facial Gratuita
para Seu Site

Integre verificação de idade e expressões faciais em minutos. Proteja seu conteúdo com a mais avançada tecnologia de IA.

Começar Agora → Ver Demo

Recursos Poderosos

🎯

Verificação de Idade

Detecta automaticamente se o usuário é maior de 18 anos com alta precisão.

😊

Reconhecimento de Expressões

Verifica expressões faciais em tempo real para maior segurança.

🔐

Integração Simples

Basta incluir um arquivo PHP no seu site e configurar.

📊

Token de Verificação

Sistema seguro de tokens para validação de acesso.

💾

Banco de Dados

Armazena verificações e mantém histórico de acessos.

🔄

Redirecionamento Automático

Retorna automaticamente para a página original após verificação.

Como Integrar em 3 Passos

1

Baixe o Arquivo

Copie o arquivo abaixo verifica_acesso.php para a raiz do seu site.

https://seusite.com/verifica_acesso.php
2

Inclua no Seu Site

Adicione esta linha no início de cada página que deseja proteger:

<?php require_once 'verifica_acesso.php'; ?>
3

Configure o Banco

Crie a tabela para armazenar verificações (opcional):

CREATE TABLE verificacoes_idade (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT NULL,
    token VARCHAR(255),
    ip VARCHAR(45),
    user_agent TEXT,
    status ENUM('pendente','aprovado') DEFAULT 'pendente',
    criado_em DATETIME DEFAULT CURRENT_TIMESTAMP,
    verificado_em DATETIME NULL,
    expiracao DATETIME
);

📁 Código Completo do Verificador (verifica_acesso.php)

<?php
/**
 * VERIFICADOR DE ACESSO - FACES FORASTEYROS
 * =========================================
 * Coloque este arquivo no seu site e inclua nas páginas protegidas
 * 
 * Para personalizar o link de login, altere a variável $link_login
 * na função criarToken()
 */

session_start();

require_once 'config/database.php';
include "conex.php";

class VerificaAcesso {
    private $conn;
    private $conex_original;
    
    public function __construct() {
        $database = new Database();
        $this->conn = $database->getConnection();
        global $conexao;
        $this->conex_original = $conexao;
    }
    
    public function verificar() {
        // PASSO 1: Já está liberado na SESSÃO?
        if (isset($_SESSION['acesso_liberado']) && $_SESSION['acesso_liberado'] === true) {
            return true;
        }
        
        // PASSO 2: Usuário logado já tem verificação no BANCO?
        if ($this->usuarioLogadoJaVerificado()) {
            $_SESSION['acesso_liberado'] = true;
            return true;
        }
        
        // PASSO 3: Voltando do Faces com token?
        if (isset($_GET['token_verificacao'])) {
            return $this->processarToken($_GET['token_verificacao']);
        }
        
        // PASSO 4: Primeiro acesso - salva página e redireciona
        $this->salvarPaginaAtual();
        $this->criarToken();
    }
    
    private function usuarioLogadoJaVerificado() {
        if (!isset($_SESSION['id']) || empty($_SESSION['id'])) {
            return false;
        }
        
        $usuario_id = intval($_SESSION['id']);
        $sql = "SELECT verificacao_face, ultima_verificacao FROM usuarios WHERE id = $usuario_id";
        $result = mysqli_query($this->conex_original, $sql);
        
        if ($result && mysqli_num_rows($result) > 0) {
            $usuario = mysqli_fetch_assoc($result);
            if ($usuario['verificacao_face'] == 1) {
                if (!empty($usuario['ultima_verificacao'])) {
                    $ultima = strtotime($usuario['ultima_verificacao']);
                    $dias = (time() - $ultima) / 86400;
                    if ($dias <= 30) {
                        return true;
                    }
                } else {
                    return true;
                }
            }
        }
        return false;
    }
    
    private function salvarPaginaAtual() {
        $pagina_atual = $_SERVER['REQUEST_URI'] ?? '/';
        $pagina_atual = strtok($pagina_atual, '?');
        $_SESSION['pagina_origem'] = $pagina_atual;
    }
    
    private function criarToken() {
        $token = bin2hex(random_bytes(32));
        $_SESSION['token_pendente'] = $token;
        
        // 🔧 ALTERE AQUI O LINK DE LOGIN DO SEU SITE
        // Exemplo: https://meusite.forasteyros.org/login/
        $link_login = "https://seusite.forasteyros.org/login/";
        
        $pagina_origem = $_SESSION['pagina_origem'] ?? '/';
        $host = $_SERVER['HTTP_HOST'];
        
        $url = "https://faces.forasteyros.org/verificar_integrado.php";
        $url .= "?site_origem=" . urlencode("https://" . $host . $pagina_origem);
        $url .= "&token=" . urlencode($token);
        $url .= "&link_login=" . urlencode($link_login);
        
        header("Location: $url");
        exit;
    }
    
    private function processarToken($token) {
        $token = preg_replace('/[^a-f0-9]/', '', $token);
        
        // Atualiza banco de dados...
        if ($this->conn) {
            $usuario_id = isset($_SESSION['id']) ? intval($_SESSION['id']) : 'NULL';
            $sql = "INSERT INTO verificacoes_idade (usuario_id, token, status) 
                    VALUES ($usuario_id, '$token', 'aprovado')
                    ON DUPLICATE KEY UPDATE status = 'aprovado', verificado_em = NOW()";
            mysqli_query($this->conn, $sql);
        }
        
        // Atualiza usuário logado
        if (isset($_SESSION['id']) && $this->conex_original) {
            $usuario_id = intval($_SESSION['id']);
            mysqli_query($this->conex_original, "UPDATE usuarios SET verificacao_face = 1, ultima_verificacao = NOW() WHERE id = $usuario_id");
        }
        
        $_SESSION['acesso_liberado'] = true;
        
        $pagina_origem = $_SESSION['pagina_origem'] ?? '/';
        unset($_SESSION['pagina_origem']);
        unset($_SESSION['token_pendente']);
        
        header("Location: " . $pagina_origem);
        exit;
    }
}

// EXECUTA
$verifica = new VerificaAcesso();
$verifica->verificar();
?>
⚠️ IMPORTANTE: No arquivo verifica_acesso.php, localize a linha:
$link_login = "https://seusite.forasteyros.org/login/";
Substitua pela URL de login REAL do seu site!

🛡️ Exemplo de Uso

<?php
// pagina_protegida.php
require_once 'verifica_acesso.php';

// Se chegou aqui, o acesso foi liberado
?>
<!DOCTYPE html>
<html>
<head>
    <title>Conteúdo Protegido</title>
</head>
<body>
    <h1>Bem-vindo ao conteúdo exclusivo!</h1>
    <p>Sua identidade foi verificada com sucesso.</p>
    <a href="/login">Login com conta verificada</a>
</body>
</html>

🔧 Como Funciona o Fluxo

1. Usuário tenta acessar página protegida
   ↓
2. Verifica se já está liberado na sessão
   ↓
3. Se não, verifica se usuário já foi verificado no banco (verificacao_face = 1)
   ↓
4. Se não, gera token único e redireciona para Faces
   ↓
5. Usuário faz verificação facial (idade ≥ 18 anos)
   ↓
6. Faces retorna com token confirmado
   ↓
7. Seu site valida token e libera acesso
   ↓
8. Usuário logado tem verificacao_face = 1 no banco

Teste Agora Mesmo

🧪

Demonstração ao Vivo

Clique no botão abaixo para testar o sistema de verificação facial em ação.

Testar Demo →

Planos

Gratuito

R$ 0/mês
  • Verificação de idade ilimitada
  • Reconhecimento de expressões
  • Até 10.000 verificações/mês
  • Suporte por email
  • API REST disponível
Começar Agora

🚀 Para grandes volumes, entre em contato para um plano personalizado.

Perguntas Frequentes

❓ Como funciona a verificação de idade?

Utilizamos IA para estimar a idade do usuário através da câmera. O acesso só é liberado se a idade for ≥ 18 anos.

❓ Preciso de servidor próprio?

Não! A verificação é feita nos servidores do Faces Forasteyros. Seu site apenas redireciona e recebe a confirmação.

❓ Onde personalizo o link de login?

No arquivo verifica_acesso.php, na função criarToken(), altere a variável $link_login.

❓ Os dados dos usuários são armazenados?

Apenas tokens de verificação e logs básicos. As imagens da câmera não são salvas em nenhum servidor.

❓ Funciona em dispositivos móveis?

Sim! Compatível com câmera frontal e traseira em smartphones e tablets.

❓ Quais navegadores são suportados?

Chrome, Firefox, Safari, Edge e todos os navegadores modernos com suporte a WebRTC.