O que o auth do laravel esconde de você, developer?

Igor Carvalho
php-brasil
Published in
2 min readMay 9, 2018

Se ele está escondendo de você, ele esta fazendo um ótimo trabalho, afinal seu objetivo é proteger recursos.

Falarei aqui sobre 4 formas de se autenticar um usuário no laravel, e uma delas não encontra-se em documentação.

A primeira forma de autenticar um usuário no laravel é através da facade Auth, com seu método atempt, então com a middleware web ele cria uma sessão e vida que segue.

A segunda forma é usada mais para APIs e SPAs, onde o client está separado do server, da aplicação que realiza os processamentos em si. É o JSON Web Token, ou JWT para os íntimos. Esta forma utiliza um token criprografado e com tempo de expiração, um tempo pra acabar. Claro este tempo é configurável. Caso deseje mais informações, acesse jwt.io.

A terceira forma é o pelo pacote oficial passport, que utiliza o oauth como forma de autenticação, e permissionamento do usuário aos recursos do sistema. Enquanto o JWT apenas autentica, o oauth (utilizado pelo passport) autentica e libera/nega acesso de usuario ao recurso do sistema. Veja o que está na página do oauth:

The OAuth 2.0 authorization framework enables third-party applications to obtain limited access to a web service.

Não só autentica, e permissiona, como é utilizado para aplicações de terceiros, ou seja, imaginemos um cenário. Você acessou um site que pede que você se autentique por seu facebook para que você possa comentar os artigos contidos neste site. Esta aplicação não só autenticará você, dará acesso a envio de comentários como também publicará na sua timeline do seu perfil no facebook. Ele publicará lá por você, então temos aí 3 sujeitos: você, facebook e a aplicação que publicou por você seu comentário em sua timeline.

Chegamos então a quarta forma de autenticação do laravel: a API token.

Sim o laravel possui uma forma própria de autenticar usuário usando a API, ou nunca notou que as rotas default da API nos projetos novos vem com uma middlewareauth:api”?

Sim, é um token semelhante ao JWT, entretanto não há regras em sua criação nem tempo de expiração, como o ocorre com o JWT. Para utilizar tal recurso basta criar um campo na tabela de usuários chamado “api_token”, e nas chamadas da API (claro, com a middlware habilitada) usar a variável de URL “api_token”, junto com o token do usuário, exemplo:

/rota/subrota?api_token=….

Mais simples que isso?

--

--