Para retomar as atividades vamos falar sobre autenticação de usuários, que na grande maioria das vezes é feita através de páginas com formulários personalizados. Hoje vou mostrar como fazer a autenticação através do HTTP, sem a necessidade de criar uma página personalizada para isso.
O PHP tem a capacidade de receber as variáveis que são originadas da autenticação HTTP, e com isso tratá-las adequadamente, verificando se as informações passadas são legítimas, independente do local onde a informação está armazenada, seja em um banco de dados, em um arquivo ou até mesmo em um servidor LDAP.
Não é necessário escrever muito código para montar um sistema de autenticação HTTP, basta fornecer ao browser os cabeçalhos correspondentes, assim o comportamento dele será igual ao do servidor web quando pede uma autenticação de usuário.
Veja abaixo um pequeno código que informa ao browser os cabeçalhos necessários para a identificação de uma autenticação HTTP.
Código:
<?php
if(!isset($_SERVER['PHP_AUTH_USER'])){
header('WWW-Authenticate: Basic realm="Autenticação HTTP"');
header('HTTP/1.0 401 Unauthorized');
echo "<h1>Autenticação Necessária</h1>";
exit;
} else {
echo "Usuário: {$_SERVER['PHP_AUTH_USER']}<br/>";
echo "Senha: {$_SERVER['PHP_AUTH_PW']}<br/>";
}
?>
Esse código informa o cabeçalho que indica a autenticação HTTP (Linha 2), o código do erro caso não seja feita com sucesso a autenticação (Linha 3). Nas demais linhas, são impressões de textos feitas na página onde o código estiver inserido.
O código é bem simples, mas ele pode ficar mais robusto e com uma maior segurança se for utilizada a criptografia de dados.
Em uma próxima oportunidade falaremos um pouco sobre criptografia.
Até a próxima.