Token do Relatório
Começou por volta do segundo semestre de 2023 a necessidade de envio de relatórios para os clientes e com isso foi necessário criar um padrão para a autenticação via Token nos relatórios.
No caso, os relatórios são encaminhados através de um link para alguns clientes que necessitam o acesso sem precisar logar no SISMETRO.
O padrão
A fim de ser possível trabalhar com os parâmetros, segue a funcionalidade como funciona:
Para esses casos deverá obrigatoriamente o envio de dois parâmetros: Token e P, sendo que o primeiro é o token de autenticação para aquele relatório e o segundo são os parâmetros do relatório. Ambos são necessários visto que o primeiro é gerado a partir do segundo.
O parâmetro P se refere a uma série de informações para a geração do relatório, como por exemplo: id da Unidade, id do Usuário (caso necessite) e outros filtros para a geração do relatório. Ele se trata de um base64 que é gerado da seguinte forma:
- Uma variável $array/$object é enviada(o) para o método indicado:
Relatorio::generateParams($array)
- É aplicado o json_encode para gerar uma string JSON do array ou objeto;
- Com isso é criptografado com base64;
- Após isso é adicionado um salt pela função:
Sismetro_Hash::insertSalt - E novamente é criptografado com base64.
Assim é possível ter um parâmetro criptografado com uma criptografia boa seguindo o padrão para definir os filtros e parâmetros para aquele relatório de forma necessária.
Já para o parâmetro Token é utilizado a função abaixo com o fluxo acima, porém, até o terceiro passo (a primeira criptografia base64):
Com isso, tendo ambos os parâmetros é possível validar se o token é válido ou não.
A validação do token
Para validar o token é só encaminhar para a função abaixo o conteúdo do parâmetro p e do token respectivamente:
Com isso, será gerado o token sem o salt para os parâmetros e retirado o salt do token para comparação. Se retornar true, tudo certo, senão, retornará false.