6
respostas

Ionic interceptor e autenticação

Gostaria de entender melhor a motivação de enviar o token no header ao invés do body, vejo que a maioria dos exemplos enviam no body e ao me questionarem não soube defender a motivação.

Aproveitando... eu gostaria de fazer o token ter uma vida bem curta e ser renovado a cada request, entendo que isso aqui resolve o meu problema:

https://angular.io/guide/http#intercepting-all-requests-or-responses

E para guardar o token eu penso em utilizar o Storage do Ionic

Penso em fazer o servidor renovar o token a quando ele ja tiver uma certa idade, mesmo estando válido ainda, alguém com mais exp pode ajudar com isso? Por enquanto vou tentando fazer aqui... vlw

6 respostas

Enviar o token no header ou no body é uma decisão do dev. Eu coloco no header porque é algo que terá que ser enviado a cada requisição e com isso não poluo o body das apis com essa informação que é vinculada em um único lugar.

A parte do token requer conhecimentos sólidos de backend e design de API saindo do escopo do Ionic que só obtém, guarda e reenvia a cada requisição.

Seu Server deve verificar a expiração do token a casa requisição recebida.

Da uma conferida nos cursos da Alura e veja aquele com a linguagem que você mais se familiarizar é invista nela.

Sucesso e bom estudo meu aluno.

Analisando melhor mandarei no header msm, sinceramente não sei qual caminho seguir:

AWS Cognito Ionic native (farei uma poc hj) Auth0 (Testei e não gostei)

Não testei o AWS, gostaria de um negocio que eu só injetasse e ja era... se tiver que ficar fazendo tela, etc... sei lá melhor fazer logo, alguma dica?

Pronto assim? Não conheço nenhuma solução ainda.

Então, comecei a testar agora o nativo do facebook, ele vai na linha do que eu gostaria, acho que consegui logar, ele esta reclamando que tenho que gerar um hash, etc (aceito dicas!!! não sei gerar este hash para colocar no facebook)... isso que estou procurando entender agora, se der certo eu usarei este mesmo, ele loga automaticamente usando o face que ja esta instalado no celular da pessoa e eu recebo o email do cidadão mando ele para o meu backend no formato jwt e os jwts controlar, basicamente só terceirizo o processo inicial de login e gestão de usuário, ficará meio amador no inicio mas ja é alguma autenticação pelo menos para pelo menos conseguir fazer uma autenticação ponta a ponta para limitar o acesso ao app e APIs.

Antes de fazer o seu curso a uns dias atrás eu nem sabia o que era Ionic, TS, jwt, node... montei tudo ja e esta bem robusto cara! Animal a Alura :-)

Se você usar o Node.js como backend dá uma chance para o passport.js.

http://passportjs.org/

Ele tem uma receita de bolo para você se integrar com essas API's abertas de autenticação (agora entendi o que você queria).

Sucesso e bom estudo Maurício!

Não parei para testar ainda, mas acredito que após a ultima atualização do Ionic poderemos usar interceptor do Angula 4.3 farei um teste durante esta semana.