Boa tarde Flávio
A um tempo atrás no fórum do curso de MEAN, postei uma dúvida sobre JWT e você me orientou, e consegui chegar até esta situação atual:
Tenho várias API Rest, onde utilizo basic http, para evitar acesso direto.
Front-end em AngularJS, desacoplado de todas API Rest. Onde este front acessa todas as APIs, enviando nos headers a autenticação (basic http). Esta funcionando tudo corretamente.
Estou desenvolvendo outra API Rest, que tem a responsabilidade de autenticar os usuários da empresa e gerar tokens. Estou utilizando (io.jsonwebtoken), consigo gerar os tokens, com as permissões necessárias de cada usuário.
No front-end, estou utilizando o (angular-jwt), fiz testes realizando login, armazenando o token no Local Storage, recuperando este token e pegando as informações do usuário que realizou o login, no logout consigo remover o token e funcionou corretamente.
A estratégia que pensei em adotar é a seguinte:
Quando o usuário realizar o login com sucesso, vou gerar o token, armazenar no Local Storage e utilizando o (jwtHelper.decodeToken) do angular-jwt vou armazenar as informações deste usuário ($rootScope.usuarioAutenticado) por exemplo.
Sempre que acontecer uma mudança de rota, eu utilizo o ($rootScope.$on('$routeChangeStart'), e verifico se existe um token e se este token não expirou (jwtHelper.isTokenExpired).
O que eu quero saber é se posso adotar esta estratégia?
Ou talvez tenha uma melhor prática para esta situação?
Pensei dessa forma, pois não vou precisar enviar o token nas requisições (via headers) das outras APIs Rest. Apenas preciso dele para autorizar os usuários de cada setor da empresa a determinadas views.