Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Autorização no front-end

Na aplicação Angular, chamamos uma API que retorna um Token como solução para autenticação na aplicação. Ou seja, toda requisição feita na API deve ser enviado o token.

Além da autenticação usando token, gostaria de implementar a autorização por perfil admin e user em algumas rotas da minha api.

Entendi que podemos armazenar essa informação de perfil no token para fazer esse controle na api, assim garantindo a segurança de autenticação e autorização no backend.

Pensando no front-end, podemos utilizar esse perfil que vem no token para montar dinamicamente os menus e ações na view? Por rodar a aplicação no cliente(navegador), quais questões de segurança devo adotar nesse caso de autorização?

3 respostas

Bom dia!

Entendo que, para o caso de menus, seu front-end já deveria receber quais são as opções que poderiam ser mostradas para o seu usuário.

Se seu back-end tivesse um path, exemplo, @path("/menus"), que retornasse para o seu front-end quais os menus apresentar, acho que seria a solução. Eu não tomaria ação pelo token retornado, Implementaria na API. No retorno da API, você poderia deixar isto de forma mais dinâmica, sem interferir tanto no front-end

Ainda assim, fazer esse controle de acesso na api, através do Token, garantindo a segurança de autorização no backend. Pelo token você verificaria se tal usuário tem acesso à funcionalidade.

Legal Thiago, não tinha pensado nessa possibilidade de criar uma rota no back-end responsável por montar o menu de acordo com o perfil do usuário. Facilitando a vida do front-end.

No caso de não mostrar uma função 'excluir' no front-end, seria o caso de fazer um IF para mostrar ou não o link da função na tela?

solução!

Boa tarde!

No meu trabalho, estamos em um projeto que tem esse conceito, de apresentar ou o novo, ou o velho, através de configurações .

Se o usuário estiver configurado para receber a nova interface, nós enviamos uma rota para o front. Senão, mandamos a rota em branco, e assim meu front aponta para o link antigo.

Cada projeto vai ter suas particularidades, mas eu acho que o conceito se aplica. Entendo que você possa ajustar sua app para receber ou não uma rota. Se a rota estiver em branco, significa que o usuário não pode executá-la. Aí o tratamento vai do gosto do desenvolvedor. Ocultar menu, fazer mudar a cor, emitir mensagem, etc.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software