Acesso por Token
Essa funcionalidade tem como finalidade permitir o acesso a rotas especificas do sistema sem que o Usuário precise efetuar o login.
Para isso um usuário cadastrado no sistema, precisara de permissão para gerar um token o qual será vinculado a esse usuário; o usuário poderá visualizar as informações sobre seus tokens em seu perfil na plataforma web.
Configurando o ambiente
Para que possamos utilizar o acesso por token, precisamos habilitar a funcionalidade no ambiente, isso pode ser feito seguindo esses passos:
[!WARNING] Um problema comum que pode acontecer é que ao criar as tabelas executando o create DS/DDL, uma restrição do campo ID pode gerar um erro não permitindo geração dos tokens, para resolver, basta executar o create DS/DDL novamente(isto ira remover as restrições desse campo).
1. Parâmetro
Precisamos adicionar o parâmetro "ACESSO_POR_TOKEN" na tabela nfs_core_par_parametros, e configurarmos nesse registro(coluna CONTEUDO) as rotas nas quais iremos permitir que o usuário possa gerar um token de acesso:
1.1 SQL:
INSERT INTO nfs_core_par_parametros (EMPRESA, FILIAL, `LOCAL`, NOME, CONTEUDO, TIPO)
VALUES(9999, 9999, 9999, 'ACESSO_POR_TOKEN', '{}', 1);
1.2 Valor coluna CONTEUDO:
{
"Minha descrição PowerBI": {
"route": "/nfs/api/powerbi/v1/"
},
"Minha descrição acesso rota WEB": {
"route": "/custom/panel/Funcionario"
}
}
1.2.1 Exemplo:
{
"Tabela: Ultimos 1000 apontamentos pendencia": {
"route": "/nfs/api/powerbi/v1/t/apontamento_pendencia"
},
"EntryPoint: Ultimas 100 pendencias": {
"route": "/nfs/api/powerbi/v1/aptPendenciaUltimas100"
},
"Painel de agendamento técnico": {
"route": "/custom/panel/Funcionario"
}
}
[!WARNING] Após essa parte, executar o create DS/DDL para criar as tabelas de acesso por token, pode ser que seja necessario executar esse comando 2 vezes para que na segunda ele remova a restrições do campo ID(o qual pode impedir a criação do token).
2. Permissão para o Usuário
Agora será necessário através do acl, atribuirmos a permissão de acesso por token ao usuário que será responsável por gerar o token.
Feito isso, o ambiente já estará preparado para trabalhar com token de acesso.
Acesso Web
Aqui veremos como configurar o ambiente para permitir que o usuário acesse alguma pagina especifica do sistema através do token de acesso.
Para isso, iremos utilizar o Painel de Agendamento técnico como exemplo:
1. Configuração do parâmetro:
No parâmetro ACESSO_POR_TOKEN(core_par_parametros), precisamos adicionar a rota para o painel e adicionar um LABEL para ela, isso será feito na coluna CONTEUDO, neste caso irei inserir no formato dos exemplos anteriores:
{
"Painel de agendamento técnico": {
"route": "/custom/panel/Funcionario"
}
}
2. Gerar Token
Após logarmos com o nosso usuário, o qual possui permissão para criação do token de acesso, iremos acessar o perfil onde poderemos gerar o nosso token, uma área "Acesso por token" vai estar disponível na parte inferior da pagina.
Como o nosso usuário não possui tokens ainda, poderemos ver os botões para Gerar o Token e Recarregar a Lista de Tokens respectivamente.
Ao clicarmos no botão "Gerar token de acesso" um modal irá surgir na tela, nele poderemos definir:
- Quais as Empresas, Filias e Locais esse token irá permitir o acesso;
- Qual a rota será atribuída ao token;
- Por quanto tempo o token será valido(de 1 a 365 dias);
- Caso o usuário seja corporativo, se o token irá permitir o acesso a múltiplas EFLs simultaneamente.
Conteúdo do e-mail de ativação:
Para validar o token o usuário precisa estar conectado a plataforma web
3. Utilizando o Token
Vamos precisar do link de acesso para a rota especifica, para isso vamos acessar novamente o perfil do usuário e lá, poderemos ver que o token validado já esta disponível para uso:
Pronto! Neste caso utilizei o chrome no modo anonimo pois eu já estava logado com usuário na sessão normal, se um usuário não estiver logado ele poderá acessar a essa rota vinculada ao token sem que o mesmo precise "logar".