Criando sua própria rotina de login

YeAPF inclui por padrão uma rotina interna de login. Todavia, nem sempre ela é suficiente ou adequada para o login de seus usuários, especialmente em sistemas legados. Por isso pode ser útil criar a nossa própria rotina de logon.

Os passos são simples: 1) Indique ao aplicativo para carregar sempre seu script de logon. 2) Escreva sua rotina de logon. Nela autentique o usuário, crie um código de sessão único e devolva este no retorno.

1) Carregando o script de logon sempre

Contrario ao que poderia parecer, carregar sempre as mesmas partes do script, facilita o trabalho do cache. Em outras palavras, como todo evento carrega sempre o app inteiro, o cache é otimizado e a performance global é melhorada em média.

Digamos que seu script chama-se ‘security.php‘, acrescente este nome no arquivo includes.lst da pasta principal (a mesma onde colocou o configure.php)

2) Escreva sua própria rotina de logon

O próximo exemplo espera uma senha em modo limpo (ou seja, sem criptografia). Utilizará o algoritmo md5() para exemplificar mas vale a ressalva que não é o melhor método.

Para que o exemplo não fique incompleto, acrescentamos também um controle da validade do acesso. Isto é, se ele é um ‘u’ válido e se está dentro do tempo de latência desejado (cinco minutos neste caso)

<?php

  function tryLogon($nickName, $password, &$logonRights)
  {
    /* the simpliest algorithm is to save a password is md5()
     * it's used here only for pedagogic purpouses
     * read about security issues here:
     *     http://php.net/manual/en/faq.passwords.php */

    $md5pass=md5($password);
    /* look for username/password */
    $sql="select id
          from app_users
          where username='$nickName'
            and password='$md5pass'";
    $id=db_sql($sql);
    if ($id>'') {
      /* lock the system (nobody can enter there until system be unlocked) */
      $lockName="userlogon";
      if (lock($lockName)) {
        /* create a timestamp and an id */
        $now=date('U');
        $userId=md5(y_uniqid().$now);
        /* set those values to the user */
        db_sql("update appUsers set userId='$userId', lastClick=$now where id='$id'");
        /* unlock the system */
        unlock($lockName);
        /* create 'u' */
        $GLOBALS['u']=$userId;
        return $userId;
      }
    }
  }

  function isValidUser($u)
  {
    $maxSeconds=5 * 60;
    $now=date('U');
    $lastClick=db_sql("select lastClick from appUsers where userId='$u'");
    $validUser=(($now-$lastClick)<=$maxSeconds);
    if ($validUser){
      db_sql("update appUsers set lastClick=$now where userId='$u'");
    }
    return $validUser;
  }
?>

 3) Reconfigure sua pasta

Feitas estas alterações, sua pasta precisa ser reconfigurada chamando o configure.php


Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383
Posted in Desenvolvimento, Yet Another PHP Framework