Token automático para requisições ajax ao Laravel

By in Laravel on 19 de julho de 2015

Para utilização de consultas ajax dentro do próprio projeto desenvolvido em Laravel, sempre recebemos o famoso erro de Token.

Com uma rápida pesquisa aos códigso do  Laravel, podemos perceber que possui um middleware que protege consultas externas ao sistema.

Então para utilizar consulta AJAX temos sempre há a necessidade de incrementar o “_token” as nossas consultas. Um tanto chato não é mesmo:

*imagina isso em todas as consultas que realizarmos.

O que incomoda é o “_token: $(‘meta[name=”csrf-token”]'” que sempre temos que ficar resgatando do meta.

Com ajuda do @vluzrmos e um pouco mais de pesquisa, cheguei a uma solução bem interessante e apropriada, principalmente para aqueles que trabalham bastante com requisições AJAX. Então vamos ao código.

Meta com token

Adicione o meta (que é padrão para pegarmos o token) ao header:

O campo meta acima estará com o valor do token da sessão, por estar no header, podemos resgatar esse valor de qualquer página.

A mágica no javascript

Em seu código principal javascript (ex.: main.js), faremos uma condições para requisições antes mesmo dela ocorrer. Se a consulta acontecer fora de nosso projeto (CrossDomain) não utilizaremos o token, caso contrário o adicionamos ao header para consultas seguras.

A remoção do header é para que o sites externos aceitem o padrão do ajax.

Com isso você poupará bastante tempo em suas requisições ajax, espero que tenha utilidade para os “artesãos” assim como está tendo para mim.