Skip to content

augustocadini/python_django_jwt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JWT App

API de amostra para autenticação em Python usando a biblioteca SimpleJWT e o framework Django.

Para a implementação da solução foi criada uma View, adição de URLs para criação de Token e rota para a View e testes unitários. Arquivos com as implementações de interesse:

exe_jwt_auth/urls.py
api_jwt_auth/views.py
api_jwt_auth/tests.py

Instruções de uso

  • Configuração

  1. Instale o Django
$ pip install django
  1. Instale a biblioteca da Simple JWT
$ pip install djangorestframework_simplejwt
  1. A partir da pasta raiz execute os seguintes comandos
$ ./manage.py migrate
$ ./manage.py runserver
  • Utilização da solução

O banco de dados já possui um superuser criado, caso deseje criar um usuário novo utilize o admindo Django via http://localhost:8000/admin/.

Usuário root existente:

username: augusto
password: asc
  • Executando testes

Para executar os testes unitários execute o seguinte comando, 3 (três) testes serão executados.

./manage.py test
  • Conhecendo os endpoints

A aplicação expõe 3 (três) endpoints para interação:

http://localhost:8000/admin/ para acessar o console;

http://localhost:8000/login/ para obter o Token de autenticação;

http://localhost:8000/document/create/ para criar um documento com os dados passados por parâmetro;

  • Obtendo o Token

Para obter o Token de autenticação utilize uma chamada para o endpoint de login passando como parâmetros um usuário e senha.

curl -XPOST http://localhost:8000/login/ -d "username=augusto&password=asc"

O retorno deve ser um conteúdo no formato JSON com um token de refresh e um token de acesso, como a seguir.

{
"refresh":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYxODAxNzIxOCwianRpIjoiMzU4MWU4MzYzMmE1NGRjMmIxYmZiOWEwYjcxNWE5YjMiLCJ1c2VyX2lkIjoxfQ.uUG07BI-snDXMIhLyzQ9jFF-dO1-SVS1Cl6kin1EV40",
"access":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjE3OTMxMTE4LCJqdGkiOiI2NTNkMjhkYmMxZjE0YzQ0YmQ2ZDQ2ZDVmNWE5MTJjZSIsInVzZXJfaWQiOjF9.JPD3Z1VgoI90DM42oqjX-ArTuAmAA8JD5RiMUJzCC68"
}
  • Fazendo o login e gerando documento

Para gerar um documento, copie o campo access do retorno do Token e utilize-o da seguinte na forma na chamada. Passando os parâmetros de autenticação no header e o conteúdo do documento no body.

curl -XPOST http://localhost:8000/document/create/ -d "nome=Augusto Cadini&data=01/01/2001&cpf=000.000.000-00&rg=0000000000" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjE3OTMxMTE4LCJqdGkiOiI2NTNkMjhkYmMxZjE0YzQ0YmQ2ZDQ2ZDVmNWE5MTJjZSIsInVzZXJfaWQiOjF9.JPD3Z1VgoI90DM42oqjX-ArTuAmAA8JD5RiMUJzCC68"

Caso a execução seja um sucesso o retorno será o caminho do documento criado:

"Document writed: /Users/augusto/Documents/bucket_projects/python_django_jwt/cadastro.txt
$ cat cadastro.txt 
Nome Completo: Augusto Cadini
Data de Nascimento: 01/01/2001
CPF: 000.000.000-00
RG: 0000000000

Usuario Autenticado
Login: augusto
IP: 127.0.0.1

About

Sample application to use JWT on Python with Django.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages