Autenticação JWT com Angular

Description

Slide Set on Autenticação JWT com Angular, created by Caio Régis on 06/08/2018.
Caio Régis
Slide Set by Caio Régis, updated more than 1 year ago
Caio Régis
Created by Caio Régis over 6 years ago
0
0

Resource summary

Slide 1

Slide 2

    Existem diversas formas de se autenticar em um sistema. A mais famosa e adotada pela internet como padrão é o modelo de usuário e senha, onde apresentamos nosso identificador (id, nome de usuário, email ou semelhante) e um segredo compartilhado com o serviço que queremos acessar, que após sua validação, nos é devolvido um token que funciona como um bilhete de acesso aos nossos recursos pessoais naquele serviço. Quando implementamos sistemas monolíticos onde o backend e o frontend estão juntos esta manutenção deste token acontece de forma automática pela maioria das bibliotecas de autenticação disponíveis por aí. No máximo decidimos coisas como tempo de validade da sessão ou onde o tokenserá armazenado trocando uma variável de configuração ou outra. Porém, ao separarmos o backend do frontend esta gestão fica um pouco mais por nossa conta as decisões sobre o que fazer e usar para isso deve ser tomadas por nós durante a implementação. E existem enumeras formas de se fazer esta gestão de acesso, uma delas é simplesmente utilizar o tokenpadrão devolvido pelo sistema, mas neste caso como eles estão separados perdemos a possibilidade de atualizar a validade deste token nos obrigando a colocar novamente a senha para obter um novo acesso. Para nos auxiliar com estes problemas utilizaremos o JWT.
    Autenticação

Slide 3

    JWT
    JWT ou JSON Web Token nada mais é que um objeto JSON definido na RFC 7519 para realizar transferência informação de permissões de acesso entre duas pontas. Ele é codificado e assinado e possuí o seguinte formato:   header.payload.signature

Slide 4

    No header (cabeçalho) ficam os dados do token, que informam seu tipo e o algoritmo utilizado em sua assinatura: {    "alg": "HS256",     "typ": "JWT" } No payload (carga) ficam os dados do usuário e alguns metadados como a expiração do token: {     "sub": "1234567890",     "name": "John Doe",     "iat": 1516239022 }
    header.payload.signature
    Na signature (assinatura) os dados de header e payload codificados em base 64 e unidos por . (ponto) para serem assinados usando o algoritmo definido no header:   HMACSHA256(     base64UrlEncode(header) + "." +     base64UrlEncode(payload),     secret )   Com a assinatura é possível verificar se o token não foi alterado no caminho, garantindo sua integridade. Com ela também é possível confirmar a autenticidade de sua fonte.

Slide 5

    JWT Token
    Estes três blocos unidos por . (ponto) cada um codificado em base 64 compõem o JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.PcmVIPbcZl9j7qFzXRAeSyhtuBnHQNMuLHsaG5l804A   Após confirmar os dados de usuário e receber o JWT ele deve ser armazenado, normalmente em local storage, para ser utilizado nas requisições autenticadas usando o esquema de cabeçalho JWT:   Authorization: JWT <token>

Slide 7

    Conclusão
    O padrão JSON Web Token pode ser usado em várias linguagens e é rápido e facilmente transmitido. Você pode usar o token em um URL, um parâmetro POST ou um cabeçalho HTTP. A versatilidade do JSON Web Token nos permite autenticar uma API de maneira rápida e fácil, transmitindo informações por meio do token.   Já existem bibliotecas no Angular que implementam a autenticação usando JWT automaticamente, porém, ter a autonomia para fazer os ajustes necessários de acordo com suas necessidades e compreender o funcionamento deste mecanismo, faz com que uma implementação um pouco mais manual valha a pena o esforço.

Slide 8

Show full summary Hide full summary

Similar

Crime and Deviance with sociological methods key terms
emzelise1996
Othello content knowledge quiz
rubyduggan
Novidades: Mapas Mentais de ExamTime
miminoma
GCSE French - Parts of the Body
Abby B
AQA A2 Biology Unit 4: Populations
Charlotte Lloyd
8 Citações Motivacionais para Estudantes
miminoma
Biology (B2)
Sian Griffiths
OCR gcse computer science
Jodie Awthinre
GRE Verbal Reasoning Vocabulary Flashcards 3
Sarah Egan
DEV I Part I
d owen
Mapa Mental Planificación estratégica
Verny Fernandez