Primeiramente feliz natal para todos, tudo de melhor pra vocês!
Seguinte:
Sou aluno do Alura e finalmente to tendo algum progresso. Finalizei os cursos de Spring Boot do Professor Rodrigo Ferreira e estou começando os cursos de Vue.js do Professor Flávio Almeida.
Minha dúvida é: Como identificar o role do usuário que fez autenticação com JWT token no front-end? O front-end que tem que decodificar o token ou é papel do back-end? Alguém poderia me ajudar com esse fluxo?
Por exemplo, na minha aplicação, somente quem tem ROLE_ADMIN pode adicionar novos usuários. Pelo que li o role vem dentro do token, então faz sentido pra mim decodificar o token no front-end, mas gostaria de confirmar.
Obrigado desde já! Boas festas pessoal!
PS: Coloquei o tópico na categoria Java pois não sabia de quem era a responsabilidade dessa parte de autenticação, peço desculpas antecipadas se errei!
Talvez hajam divergência das possíveis ideias de solução, mas do meu ponto de vista, dado que o JWT segue um padrão único e já carrega as informações necessárias sobre o usuário autenticado, entendo que o front poderia tratar isso no que diz respeito à movimentar dados e acessos as telas, porém, o backend também deve garantir a segurança dos dados que cada usuário pode movimentar para cada endpoint que sua aplicação dispõe.
Feliz natal Jonathan! Muito obrigado pela resposta!
Acho que essa parte de verificação de endpoint no back-end não é tão complicada, gostaria mesmo é de um exemplo de como decodificar o token e fazer os acessos de acordo com o role no front-end, porém creio que eu precise criar outro tópico na categoria correta, certo?
Decodificar o JWT é algo bem simples, já existem libs prontas para fazer isso!
Depois basta você criar suas tratativas de acordo com a role contida no token!
Exemplo de decode JWT:
npm install jwt-decode
var jwtDecode = require('jwt-decode');
var token = 'seuTokenJWT';
var decodedToken = jwtDecode(token);
console.log(decodedToken);