Autenticação no Yii2 – Parte II

Espalhe por aíShare on FacebookTweet about this on TwitterShare on Google+Share on Tumblr

E ai galera, tudo BELÊ? Depois de aprendermos como trabalhar com identidades no yii2, nessa parte 2, iremos testar em um formulário tudo o que foi feito na parte I. AH, aproveitando a deixa: se você ainda não viu a parte I desse tutorial, clique no link abaixo e vejo como criamos nossa autenticação:

Autenticação no Yii2 – Parte I

Formulário de Login

Na Classe yii\web\User, que foi registrado no nosso web.php, existe um atributo chamado loginUrl, que representa a url para a página de Login da aplicação (Acho que o nome já diz isso –‘).

Por padrão, o valor deste atributo é: [‘site/login’]. Vamos modificar a URL da tela de login para site/meuLogin, dessa forma

Vamos utilizar o mesmo formulário que é usado no template basic modificando algumas coisas. Primeiramente, vamos a Classe: app\models\LoginForm

Essa classe está apenas dizendo que o nosso formulário:

  • Yii::$app->user retorna a instância do component yii\web\User;
  • Terão os campos: email, password e rememberMe;
  • É configurado as regras (rules) básica de validação para cada campo;
  • Criação do método getUser(), para que possamos consultar na nossa tabela se o usuário realmente existe;
  • É criado o método login(), que será o responsável pela criação da identidade. Observe que o 2º parâmetro desse método é uma expressão numérica 3600*24*30 que representa, em segundos, o tempo de vida do cookie que é criado caso você marque o checkbox rememberMe.

Caso você não conheça os Core Validators no Yii2, clique aqui e veja quais são e como os mesmos funcionam!

Controlador

Depois de criado o formulário, vamos configurar nosso controlador SiteController, criando uma nova action chamada: actionMeuLogin

No controlador não tem muito segredo, estamos apenas dizendo:

  • Foi registrado um Filtro AccessControl (dentro do método behaviors) dizendo que só vai permitir acessar a action logout para usuários autenticados;
  • Caso o usuário não seja convidado, ou esteja autenticado, (!\Yii::$app->user->isGuest), redirecionamos o usuário para a página inicial;
  • Caso usuário tenha submetido o formulário, a aplicação vai “popular” o objeto LoginForm e tentar fazer a autenticação com o método $model->login();
  • Instanciamos nosso formulário e enviamos sua instância para a view meuLogin;

Caso você queira ver mais detalhes sobre Filters, assista essa vídeo aula onde falo exclusivamente sobre esse assunto!

View

Depois de criado nossa Classe de Formulário e a Action, vamos criar a view site/meuLogin.php para que o usuário possa entrar com suas credenciais. Esta view é muito semelhante ao formulário de login que ja vem no Basic Template:

Você terá algo parecido com isso:

Login

Caso você queria ver mais detalhes deste fantástico Widget ActiveForm, clique aqui !

Se você tiver feito tudo direitinho, sua autenticação já deve está 100% funcionando! Note que no Basic Template, quando estamos autenticado, o item de menu Login “transforma-se”em Logout (username), como na imagem abaixo:

loado

Espero que tenha gostados desses 2 artigos falando de Autenticação no Yii2.

Um forte Abraço e até a próxima!

Espalhe por aíShare on FacebookTweet about this on TwitterShare on Google+Share on Tumblr

Kilderson Sena

Empreendedor, Experiente Analista e Desenvolvedor de Sistema e Líder de Equipes. Micro Empresário no ramo de Tecnologia, mas precisamente nos mercados de Desenvolvimento WEB, Desktop e Mobile.

8 comentários em “Autenticação no Yii2 – Parte II

  1. Ola Kilderson

    Parabéns pelo brilhante trabalho no esclarecimento e aulas do YII2, estou aprendendo muito.
    Sou iniciante nesse assunto, inclusive já respondi a sua pesquisa sobre o assunto.

    Na empresa em que trabalho, tem um grupo de pessoas com a intenção de inserir o Yii2> Eu também comprei este briga, mas sou iniciante.

    Minha primeira incumbência é de fazer o nosso Yii2 fazer Autenticação já usando “chave de rede Windows” da rede Network com Active Director.. Pois todos da empresa já possuem chave de rede..

    Você poderia me dar uma dica, para eu tentar fazer esse logon usando a chave de rede ?

    Sei que não vai ser fácil com as minhas limitações de programação, mas garanto que vou tentar.

    Grato

    Djalma – 09/06/16

    1. Primeiramente, muito obrigado pelo seu retorno e pelos elogios ao nosso material. o PHP em si, já tem suporte a LDAP, que é o que você está precisando. O Yii Framework tem alguns módulos já prontos para isso, vai aqui um exemplo:

      https://github.com/edvler/yii2-adldap-module

      E aqui, tem um simples tutorial ensinando implementar:

      http://des1roer.blogspot.com.br/2015/07/yii-2-ad-ldap.html

      Espero ter ajudado amigo, e conto contigo nos próximos vídeos.

  2. Grande Kilderson Sena

    Me de uma ideia de como eu posso por todo esse SQL puro no Yii2,
    e ter uma View com os campos:

    Registro do empregado;
    Nome do empregado;
    Iniciativas;
    Competências à adquirir

    Comando SQL:

    SELECT p.registro, p.nome Empregado, pe.nome Iniciativa, pca.competencia_nome
    FROM pdi_projeto_estruturante ppe
    inner join pdi on pdi.id = ppe.pdi_id
    inner join projeto_estruturante pe on pe.id = ppe.projeto_estruturante_id
    inner join pessoa p on p.registro = pdi.registro
    inner join pdi_competencia_adquirir pca on pca.pdi_id = ppe.pdi_id
    where pdi.ciclo_pdi_nome = ‘2016’
    limit 5000000

    Grato

    Djalma – 01/07/16

Deixe uma resposta