Olá, tudo bem? No vídeo de hoje eu vou lhe ensinar como implementar autenticação com JWT (JSON Web Token) em uma web API Node.js. Se gostou do vídeo, deixe o seu like e se inscreva no canal. Um abraço e sucesso.
Prof. Luiz
Referências:
– Meus cursos: http://184.73.67.74/meus-cursos?utm_source=youtube&utm_medium=link&utm_campaign=cursos&utm_content=jwt
– Meus livros: http://184.73.67.74/meus-livros?utm_source=youtube&utm_medium=link&utm_campaign=livros&utm_content=jwt
– Tutorial em texto, com form para baixar os fontes: http://184.73.67.74/post/autenticacao-json-web-token-jwt-em-nodejs/
– Minhas redes sociais: https://about.me/luiztools
—
o Olá tudo bem Aqui é o Luiz e no vídeo
de hoje eu vou lhe mostrar como fazer
implementação de autenticação usando jwt
as suas apis no-js Você ainda está
voltando a cabeça tentando entender como
já deve ter funciona e como fazê-lo
funciona old esse vídeo para você ver
[Música]
bom então vamos lá o parto do
pressuposto aqui e você já sabe criar
uma web pi e usando node.js Express não
é intuito desse vídeo tratar esse
assunto mas eu vou deixar na descrição
links de outras fontes um somente meu
blog onde você pode aprender a construir
o abc então aqui eu vou partir do
pressuposto e não apenas um pressuposto
mais de uma hora ep bem simples mas já
pronta que a gente vai adicionar a
autenticação via jw.tv a Jason webcam
bom Então nesse código estão vendo é uma
webpay bem simples construída com
Express onde eu recebo Jason no bar I
das aquisições eu tenho uma rota get na
raiz que vai ser uma rota sempre pública
qualquer vai poder acessar
e eu tenho uma rota/clientes que me
torna uma rede clientes fake aqui mocado
essa rota que quer que eu vou querer
tornar segura somente lá do outro
dicados eu quero consigo retornar os
clientes da minha EP
e eu tenho uma rota post em login que
ela faz hoje ela testa se veio um
usuário e uma senha no corpo da
requisição tá que eu chorei no código
porque não é muito difícil toda a
construção conectar com o banco de dados
etc mas essa verificação aqui este Fi
você tem que bater no seu banco de dados
com esse os olhos tenha verificar se
existe um usuário com esta senha e daí
sim entrar ou não Luiz tá então que eu
fundei é para gente colocar realmente
novo Até deve ter Aliás se você quiser
aprender a fazer o app is completo um
beck and completo Exame com serviço de
autenticação banco de dados etc tem o
link do meu curso completo de fustec na
descrição do vídeo também então aqui
tenta no wi-fi quer dizer que os olhos
sem abateu não é com os olhos em vários
a minha aplicação Se não entrar no wi-fi
quer dizer que não bateu os olhos tenha
então este usuário não fez um login com
sucesso
e eu fiz uma rota de logout também não é
capaz de autorizar o usuário que tava
tendo ficado e depois aqui só tá subindo
realmente o servidor um jeito bem
tradicional que você já deve ter feito
inteiramente com Express ou que o
primeiro passo para você entender
corretamente funciona basicamente Você
tem uma autenticação normal com os olhos
sem a por exemplo
a revolta indicação sendo realizada com
sucesso você vai gerar um pouco em um
pouco em como se fosse um código único
não é de autenticação para que Ele É
excitante para aquele cliente aquele
usuário você vai entregar este toque em
para usuário e todas as requisições
subsequentes que ele fizer para sua aí
ele tem que mandar junto esse toque em
para que você consiga pegar o toque em
dá uma olhada e ver o pai esse usuário
realmente é um usuário só tem de cor há
pouco tempo aqui comigo eu posso deixar
ele passar um toque nada mais é do que
uma string codificada um ponto
importante salientar aqui é que eu tô
que ele não é criptografado ele é só
codificada em base64 então se você
quiser que realmente o soltou que esteja
com mais segurança você tem que usar
https também para transmissão dos dados
da sua Play eu vou entrar mais ou menos
perto de segurança mas na sequência
também mas vamos lá como é que eu coloco
revisão OAB token a funcionar numa P
node.js eu tô aqui com foi aberto na
pasta
E aí quem nunca aqui vou ligar para ela
eu vou falar nessa pasta uma extensão
chamada Jason web Token
Oi e agora eu vou carregar ela aqui no
meu lindo aqui só tá ela não conste JW
ter para receber rico Ai que Jason
hábito quem com esse objeto ao trabalho
ter eu consigo gerar Tocantins e
verificar toquem então eu Gero após o
login bem-sucedido de vou para o usuário
e verifico sempre que se usuário me
enviar um toque em junto uma requisição
Senão daqui a pouco como é que são Eu
Não Vou permitir o acesso aquela rota
vamos começar aqui pelo login
o seu login foi feito com sucesso nessa
usuários sem abateu vou chamar um jwt.io
Pioneer para assinar comprometer só
falar que ele é assinado ele contém 3
partes
e ele contém alguns metadados algumas
informações Dona tablet e ele contém
untei load e são algumas informações que
permita você identificar melhor esse
usuário depois
e ele contém uma assinatura digital e é
algo que somente o servidor vai
conseguir fazer porque ele vai ter uma
um Security vai ter uma senha lá no
servidor que ele vai usar para fazer
essa assinatura digital e essa fatura
digital e garante a autenticidade do
Token porque a menos que alguém de fora
do seu servidor conheço aquele círculos
também ele não acontece nada não sabe o
texto da mesma forma
e como vaga para meter pontos ai eu vou
passar aqui o meu pai load tem o que
quer openload é alguma informação que
tem muita depois Identificar qual é o
usuário tá fazendo aquela requisição
então o ideal é que você não coloque nem
muitos dados para nós ficar um pelo de
pesado e nem dados sensíveis que é para
nós por informações da sua aplicação
então por exemplo eu posso colocar aqui
um usaid por exemplo imagina que com
esses olhos senha que o batismo banco de
dados Verifiquei que existe o retorno
agir e coloco no dentro do meu token
participando novas aquisições foram
feitas eu poder pegar o toque trabalho
ter e verificar a é o fulaninho cantando
acessar a pessoa que usa é digital e daí
depois eu posso fazer outras camadas de
segurança em aplicação lá no que tange a
autorização e autenticação a garantir
que você é você mesmo a autorização é
garantir que você tem que ter missão
para fazer alguma coisa dentro da
aplicação
É mas eu não sei um pouco mais complexo
aí de segurança que eu não vou entrar
aqui agora nesse vídeo então para
assinar eu passo openload daqui que
minimamente identifique quem é usuário
que está com esse toque em e passo um
Secret que é a senha utilizada para
assinatura digital essa senha você pode
guardar não parava de bientina temos
configuração onde você quiser tá eu vou
guardar ela aqui em cima só para finas
né de simplificar
É eu sei que vai ser Luiz vou passar
aqui na hora da assinatura e o terceiro
parâmetro eles são as opções e uma opção
para o interessa muito aqui é a expires
in que é quanto tempo vai ser válido
este token Imagine você não vai querer
criar um toque você já vale para toda
vida eu quero a gente ficou uma vez e
para o resto da vida com os mesmo toquem
o ideal que essa expressão era seja
curta coisa de alguns minutos e depois
você pode ficar mecanismo na sua
aplicação e ficar fazendo um refresh no
toque ou pedir para os olhos só tem que
ficar de novo por exemplo eu vou colocar
aqui por exemplo 300 segundos né cinco
minutos de validade e se toquem esses
sign vai me retornar a um objeto Tolkien
certo
é que na resposta da minha requisição eu
vou dar um resto ponto de visão e eu vou
passar por exemplo 11 ao filho dizendo
do Sul né que é altenticado e como que
toquem aí avaliada um pouquinho ali de
cima contendo toque que o meu front lá o
meu usuário vai ter que guardar Porque
toda a aquisição deve que mandar esse
toque de novo e ele vai ser Válido por
cinco minutos você não entrou no wi-fi
vai entrar em 141 né E era Deus Ancião é
o código http para não autorizado a
entrar uma pessoa sem autorização não é
para fazer para utilizar o sistema como
você está essa parte aqui ó
eu vou mandar rodar e aqui no post mano
e eu vou dar um post
o local host
o meu cabeçalho eu vou ter um content
type
in the application The Zone
bom e no meu Bari vou usar aqui ó e vou
passar o meu objeto Jason de
autenticação que eles esperam Ilza
eu vou botar que Luís
e ele espera um pastor aconteceu o que
aconteceu é porque é um dois três só né
um dois três
a beleza está aqui ó o nosso jwt
E se eu pegar esse alimento aqui e for
em qualquer site de Decode base64 a
gente consegue ver o que tem dentro dele
só que as três partes que Eu mencionei
voltar no tempo
e onde a primeira parte são meta-dados
JW cliente fazendo algoritmo de
criptografia utilizada e o tipo de
Tolkien o nosso download que é o uso é
indicado armazenando como é que a gente
fica aquele usuário e mais duas
informações geradas automaticamente toda
até cadastrado tem que a minha formação
do time stamp de quando que ele foi
gerado e otários tempo de quando ele vai
estar inspirado
Tá certo isso depois da verificação eu
vou utilizar para ver se chega no item é
válido ainda e o último aqui que é o
único elemento que torna fácil de fato
que é assinatura digital essa assinatura
digital ela é feita usando o Secret mas
o seu pé longe então uma pessoa tenta
fora já aqui na e tentamos assim mesmo
toque só mudando a dia do usuário para
dois ela se fingir passar pelo um outro
usuário na aplicação assinatura digital
não vai bater e ele vai ser negado eu só
depois eu mostro na prática também
beleza indicação funcionar como é que eu
faço agora as chamadas subsequentes
obrigar a passagem do Twitter não
permite que alguém não indicado utiliza
duas rotas eu vou criar que uma função
chamada verify jwt ela vai esperar por
parâmetro um rack e um resto é um
recorte response o que que ela vai fazer
ela vai pegar um token que está aonde no
rack. Render e
o cabeçalho que eu quero pegar né a
informação e aqui o cabeçalho qualquer
cabeçalho na verdade funciona com
versões mais populares tem utilizados
são o authorisation ou o x-access-token
e eu costumo utilizar os seus aqui só
quem manda na prática ela mesma forma
utilizar os dois tá pra gente conversar
melhor me conter o toque em eu vou usar
jwt.io verify para verificar este toque
passando novamente os Secret então
sempre ser usado tanto para assinar
quanto para verificar a validade de um
toque e o terceiro parâmetro é o
callback Onde eu posso tem um erro
o ou o Toquinho decodificado não quiser
trabalhar com codecs né eu posso
trabalhar com async-await também né como
não quer entrar nas indicações vamos de
callback mesmo então cê deu erro eu vou
retornar um resto. Status 401
Tá certo vai dar eu em que caso top hein
Wagner beleza outro aqui ausente ou
token inválido só tentou manipular autor
que eu tô mexendo assinatura caso
contrário o objeto de couro de vai vir
preenchido com o meu pai longe do nada
do tempo então eu vou ter passado a
informação do usuário né que está
altenticado que fala acessando uma url
então eu posso por exemplo guardar aqui
ó em rack. E o Zenaide o meu de could.be
usaid coração
ah ah meu amor tô aqui né ele tem usar a
dentro dele eu tô pegando aguardando
conexão para uso posterior
e eu quero passar que também na minha
com parâmetros assumir a função um next
O que é uma função que vai executar
depois desta aqui aqui é o formato com o
Express funciona através de uma dor e se
verifica prometer nada mais é do que uma
função de medo é que eu vou utilizar nas
rotas que eu quero que sejam Segura que
a pessoa tem que ser autenticada para
chamar então um jet todo mundo pode
chamar agora no lugar de clientes depois
aqui na direção da Rota eu vou botar o
nosso vídeo é de ver ele fala trabalho
que se der erro ele já vai encerrar
minha aquisição se não der erro ele vai
pegar o José dir a pessoa que não disse
está autenticada e vai Executar a
próxima função nas camadas de milhões de
Express que é qual que é essa aqui tá
logo na sequência inclusive né para
mostrar que a pessoa somente ficou eu
posso colocar aqui ó
O que significou eu posso colocar que
consegue log mostrando o rack. User
guide Tom naquele o Fred fez a chamada
por exemplo só para fiz o ultrassom
mesmo para gente ver quem que bateu aqui
nessa nessa nessa rota
Ah beleza então vamos tentar derrubar
que esse vídeo novo vamos o Postman
o que vocês a
como fazer um Deck em barra clientes têm
que estar autenticado meu passando
ciúmes certo vou fazer um gatinho mas aí
vocês altenticado funciona agora vamo
autenticar vou fazer um post
a barra
o login tô tô indicado
Tá certo recebeu o toque agora se eu
fizer um that em barra clientes eu
continuo sem autorização porque que eu
não passei o toque em que eu peguei para
ter que passar aqui x-axis tô aqui no
cabeçalho o valor do meu Token
eu vou fazer agora um jet/cliente agora
eu tenho acesso e o usuário é de um
pensa chamada aqui beleza Se eu tentar
burlar esse mecanismo eu quero forjar um
toque em eu posso em qualquer site aqui
de encodebase64 primeiro eu decodifiquei
aquele toque em que gerou vou mudar aqui
ó para o usuário dois para fingir que eu
sou outros usuários ou copiar aqui o
toque em pois não tá me passar por outro
usuário não funciona beleza eu tô aqui
certo de volta no lugar o Fernando
Pipoca é válido por cinco minutos eu
quero mandar para você também daqui a
cinco minutos ele não vai estar mais
funcionando enquanto isso preencham
perder tempo
o que mais que vai eu falar aqui além do
domingo é de verificação do Estado tempo
você pode ser um outro Miller referente
a autorização para verificar Ok aquele
pênis altenticado mas ele possui
permissão para acessar essa rota essa é
uma outra discussão você pode bater o
banco de dados com a ID de usuário dele
pegar as transmissões e bater as
atenções com a tabela de permissões e
Rotas por exemplo para verificar se ele
tem permissão para acessar aquela rota
além disso a gente não falou de logout
logout acontece de duas maneiras no lado
do cliente no lado do servidor no lado
do cliente no frontend ambiente guarda
trab ter no cookie ou no local história
de tomar do cliente assim que apagasse
informação na hora de logout e no lado
do servidor o Tom que ele vai esperar
automaticamente dentro de alguns minutos
mas se você quiser acelerar este
processo entre aspas né Você pode
colocar o toque em uma Blacklist então
por exemplo aqui eu vou fazer em memória
né mas você pode ter um redes ou um
longo ou no banco
e por exemplo uma Blacklist the Talk
então aqui no logout eu vou pegar e vou
colocar na minha Blacklist vou fazer um
peixe o rack. Header x-access-token
certo e daí do meu filho passar do tempo
além de verificar a questão da
assinatura nesse eu tenho verificar
citou que não tá na minha delícia certo
daí eu não tenho que foi feito um local
que não possa usar ele de novo para
fazer uma notificação então eu posso ver
aqui com o Tinder
The Blacklist find index toquem
E se o índice for diferente de menos um
ou seja ele encontrou esse toque na
minha Blacklist
e eu vou na sair daqui
e com o status de patentes e um ele não
pode tentar fazer uma chamada utilizando
um pouquinho que tá Black estado né tá
na minha lista negra Clara você tá vendo
aqui é bem boba mas é só para me dar uma
ideia de como fazer
é mas sabe aquele shampoozinho que está
crescendo definidamente não é legal né
ideal seria que tivesse um tipo de
inspiração da deck list limpeza etc
o nome dele é muito bom para isso porque
ele tem um
o PT é linda que eu tenho tipo de dado
que eles comem sozinho da base da depois
de um tempo eu tô aqui já expirou ele
não é mais válido pelo por tempo mesmo
agora se eu me logar denovo pegar este
novo toque em atualizar aqui no
cabeçalho eu fizer um that em clientes
ele tá funcionando agora se eu fizer
logout um post em logout passando aquele
meu toque em a funciona logo a 200oc e
agora você quiser pegar os clientes de
novo com aquele mesmo toque né meu
cabeçalho mas não mudei ele agora tá nem
abri aquele certo só deu erro aqui não é
uma função claro eu besteira aqui né
Vandinha que esperam uma função um botar
aqui aí tem
é igual a quem deve funcionar Vamos
iniciar pegando todos os clientes Ok vou
fazer um post em logos
Ah beleza conheço meu token foi Black
estado né
e na Blacklist para você não tá fazendo
um gatinho cliente de novo usando o
mesmo toque em ele já não deixa mais
mesmo ainda estando Vale do segunda
inspiração assinatura etc ele também
abre aqui isso então não vai rolar mais
Beleza espero que você tem conseguir
entender agora Finalmente como é que
você aplica para bater autenticação
apenas JS os Fontes que eu creio aqui no
vídeo na descrição do vídeo você vai
encontrar o link do meu gift Rubi para
você pode falar essa coisa história
embaixo as pontes também o texto de
apoio a esse vídeo e principalmente o
link do meu curso completo isolamento
Fortec usando node.js onde eu mostro não
apenas no ter integrados uma aplicação
completa uma série de outros conteúdos
básicos intermediários e alguns até
avançados que eu tenho certeza que pode
enriquecer a sua carreira Tá bom então
eu também conto antes você sair aí com o
seu like e com a sua inscrição no canal
para você receber mais vídeos como esse
de tutoriais de node.js e também sobre
carr
os dados várias coisas que eu falo aqui
no canal tá bom é um abraço e até a
próxima valeu
Olá, tudo bem?
O que você achou deste conteúdo? Conte nos comentários.