Json Web Token com Tornado

Este é um exemplo que surgiu da conversa que tive com um amigo no trabalho.
Ele comentou que precisava aplicar um mecanismo que desse garantias que um requisitante está autorizado a acessar um recurso de uma API e sugeriu usar o JSON Web Token, e isso implementado no Tornado (Webserver assíncrono python).

Vou tentar ilustrar como um mecanismo baseado em token funciona, com um exemplo bem simples e até um pouco grosseiro, mas vamos lá:

Minha avó possui receitas secretas que só as pessoas da minha família podem ter acesso. Por serem preciosas pra ela, todas são guardadas em um cofre num banco e para ter acesso eu preciso de uma procuração da minha avó me autorizando a acessar o cofre no banco. Então eu vou até minha avó e falo: “Olha vó, sou o seu neto preferido, posso ir lá no banco pegar as receitas da família?”, então se estiver tudo ok (se ela estiver de bom humor), ela vai me dar um documento que diz que posso ler as receitas. Eu pego esse documento, vou até o banco e peço para ter acesso as receitas da minha avó. O pessoal do banco vai verificar se o documento está correto, por exemplo, dentro do prazo de validade, se a assinatura dela corresponde etc, e se estiver tudo certo, vai deixar eu ler as receitas.

De modo grosseiro o mecanismo do JWT funciona dessa forma, recebo um token que contem dados de validade, payload etc, e caso eu precise acessar um recurso que é considerado restrito na minha API, eu passo esse token pra ela e ela valida se posso ou não acessar este recurso.
Dessa forma eu não armazeno estado nem no cliente (cookies, etc), nem no servidor (sessão, etc). Não irei entrar em detalhes sobre Token, OAuth ou JWT aqui, pois o que quero deixar disponível é o exemplo que foi criado para o tornado. Ele está disponível no meu github. Foi criado um decorator para ser usado nos métodos que necessitam ser protegidos do acesso público

https://github.com/paulorodriguesxv/tornado-json-web-token-jwt

Basciamente o conceito é:
Gero um tokem acessando a url localhot:8888/auth
de posse do token, utilizo o Postman para acessar minha pagina principal. Se o token estiver OK, a pagina é mostrada, do contrário as respectivas mensagens de erros serão exibidas

Até a próxima

0 comments on “Json Web Token com TornadoAdd yours →

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *