2. AGENDA
1 / Introdução
2 / Exemplo
3 / Auth em alto nível
4 / Token Auth
5 / React Token Auth parte 1
6 / React Token Auth parte 2
7 / Source Links
3. INTRODUÇÃO
Quando falamos em segurança, há alguns termos e processos básicos que
precisam ser compreendidos antes que possamos escrever do código.
Autenticação: O processo ou ação de provar ou mostrar algo como
verdadeiro, genuíno ou válido.
Token: Um pedaço de dados criado pelo servidor que contém informações
para identificar um usuário em particular e validade de token.
Autorização: O processo de dar permissão a alguém para fazer ou ter algo.
Privilégio: Um direito especial, vantagem ou permissão concedida ou
disponível apenas para uma pessoa ou grupo de pessoas em particular.
5. EXEMPLOVocê vai a um hotel e caminha até a recepção, diz à recepcionista que você tem uma reserva e a
recepcionista pedirá alguma identificação e verificará o nome que foi dado para a reserva.
Isso é Autenticação, você está provando que você é quem você diz que é.
O equivalente virtual disso seria fazer login com um nome de usuário ou senha.
Depois de ter sido autenticado, a recepcionista emitirá um cartão-chave para acessar diferentes
seções do hotel.
O equivalente virtual disso seria um token, um item exclusivo que contém informações sobre o
titular.
Agora pegue o elevador até o seu andar e caminhe até o seu quarto e para entrar no quarto, basta
colocar seu cartão / chave na fechadura e entrar na sala.
Isso é novamente Autenticação, mas a chave tem suas informações e a porta a autentica
automaticamente.
6. EXEMPLO
A chave também permite que você acesse alguns lugares, mas não outros, por exemplo, posso
entrar na piscina, mas não em outro quarto de hóspedes.
Isso é Autorização, você tem o nível de privilégio de um convidado para poder acessar
seu quarto e a piscina, mas um gerente pode acessar seu quarto, a piscina e outros quartos.
O equivalente virtual disso seria um nível de privilégio de usuário ou administrador em um
computador;
Depois de ter terminado a sua estadia no hotel, simplesmente jogue fora a chave ou transforme-a
na recepção e o equivalente virtual disso seria sair de um site.
7. AUTH EM ALTO NÍVELAutenticação é o processo de permitir que um usuário do seu aplicativo crie uma conta,
faça login, tenha permissões de usuário específicas, obtenha dados que só os interessem
como usuário, etc. A autenticação inclui uma preocupação de segurança (não queremos
que as pessoas sejam capaz de ver ou manipular os dados uns dos outros), bem como
uma preocupação de usabilidade (um aplicativo que não permite que eu tenha minha
própria lista de tarefas é bastante inútil, a menos que eu seja o único usuário do
aplicativo).
Atualmente, os três principais tipos de autenticação são:
1) Autenticação baseada em sessão / cookie
2) Autenticação baseada em token
3) OAuth
8. TOKEN AUTH
Um usuário preenche um formulário de login contendo, normalmente, um nome de
usuário e senha, que é então enviado ao servidor para verificação.
O servidor procura um usuário com o nome de usuário fornecido no banco de dados e
verifica se a senha está correta, caso contrário, ele retornará um erro de autenticação
informando à pessoa que ele colocou o nome de usuário e / ou a senha incorretos.
Caso contrário, se tudo correr bem, o servidor cria um token, que é apenas uma longa
seqüência de texto aparentemente aleatória que é enviada de volta ao usuário.
Esse token habilita ao usuário um certo nível de privilégio para se movimentar pelo
aplicativo, acessando certos dados, fazendo alterações nos dados, acessando
determinadas partes do site, etc.
Muitas vezes, salvamos esse token em sessionStorage ou localStorage para facilitar o
acesso pelo aplicativo cliente.
9. TOKEN AUTH
Sempre que o aplicativo cliente faz uma solicitação HTTP ao servidor, ele envia
esse token junto com ele. E com todos os recursos protegidos no servidor (qualquer
ponto de extremidade da API que requeira direitos especiais de acesso, como o de um
usuário conectado), o servidor verifica o token recebido do cliente para garantir que
esse usuário tenha autorização para acessar esse conteúdo e em caso de afirmativo,
retorna o conteúdo solicitado, caso contrário, ele envia algum tipo de erro de
autorização indicando que o usuário não está autorizado a ver essas informações.
Para desconectar um usuário, basta remover o token de onde você o salvou
(armazenamento local ou de sessão) e ele deixa de ser enviado a cada solicitação, o
que significa que o servidor para de fornecer ao usuário acesso aos dados protegidos
e isso é semelhante a tirar o cartão de acesso do funcionário de um prédio até que ele
venha da próxima vez e provar que está de novo lá.
10. REACT TOKEN AUTH
PARTE 1
https://coursework.vschool.io/react-token-authentication-pt-1/
PARTE 2
https://coursework.vschool.io/react-token-authentication-pt-2/