Criando sua própria autenticação do Drupal

Tagged:

Como uma das grandes vantagens de se trabalhar com o Drupal é a de que ele é altamente customizável, a autenticação não poderia ficar pra traz. Neste artigo vamos ver como é simples criar seu próprio sistema de autenticação para o Drupal.

Para tornar este artigo mais fácil de entender, vamos criar um módulo real que vai autenticar todos os usuários que estão em um arquivo texto. O nome do nosso módulo será fileauth.

Basicamente vamos apenas usar um hook para criar nosso módulo, o hook_auth.

Então chega de bla bla bla e vamos lá...

Primeiro crie o diretório fileauth onde os arquivos do nosso módulo vai ficar e crie o arquivo fileauth.info dentro dele.

Agora crie o arquivo usuarios.txt com o seguinte conteúdo:

pedro:1234
priscilla:4321
fulano:abcd
zezinho:obdc

Estando com tudo pronto, vamos para o módulo. Crie o arquivo fileauth.module e coloque o seguinte conteúdo. Em seguida vou explicar o que ele vai fazer...

<?php

function fileauth_auth ($username, $password, $server) {
 
$file = drupal_get_path('module', 'fileauth') . '/usuarios.txt';
 
// File not found
 
if ( !file_exists($file) ) {
   
drupal_set_message("File '$file' not found!", 'error');
    return
FALSE;
  }

 
$users = file($file, FILE_IGNORE_NEW_LINES);

 
// No users on file
 
if (!count($users)) {
    return
FALSE;
  }

  foreach (
$users as $user) {
    list(
$u, $p) = split(':', $user);
    if (
$u == $username && $p == $password) {
      return
TRUE;
    }
  }

 
// User not found...
 
return FALSE;
}

?>

Muito simples né? vamos à explicação...

Caso o drupal não ache o usuário em sua base de dados, ele executa nossa função passando o usuario e a senha que foram escritos no formulário. O parâmetro $server pode ser esquecido neste momento por nós pois não vai ter utilidade...

O módulo apenas abre o arquivo e procura por um usuário:senha... Simples né?

Você agora pode fazer o que quiser... validar com usuários de banco de dados, XML-RPC etc. O céu é o limite...

Até a próxima.

Média
(1 vote)

Enviar novo comentário

O conteúdo deste campo é privado não será exibido publicamente.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <pre> <br>
  • Linhas e parágrafos quebram automaticamente.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Mais informações sobre opções de formatação

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
2 + 3 =
Resolva este simples problema de matemática e digite o resultado. Por exemplo para 1+3, digite 4 e não 5.