Un middleware que agrega un token a cada request y response entre microservicios de los que se tiene propiedad.
Project description
La aplicacion utiliza la libreria PYJWT para agregar un token a cada request y a cada response mediante un middleware personalizado.
Instalacion
Agregar a la lista de aplicaciones.
INSTALLED_APPS = [
...
'authorized'
]
Agregar el middleware al inicio de la lista.
MIDDLEWARE = [
'authorized.middleware.APIAuthRequestMiddleware',
...
]
Agregar las variables *Requerido
En el archivo settings.py agregar las variables.
APP_NAME = 'Awesome App'
IGNORED_PATHS = []
En el archivo docker-compose.yml
service:
...
environment:
- APP_KEY=secret
Aplicar las migraciones del middleware.
$ python manage.py migrate authorized
Uso
Requests
Para que el middleware funcione se necesita agregar el header
'Application-Token':token
Para evitar hacerlo se creo una “mascara” de la libreria python requests que agrega el token automaticamente, sin alterar su funcionalidad. Importar el modulo.
from authorized import api_request
hacer los request de forma normal, ie.
api_request.get('url', params)
Todos los metodos de python requests estan disponibles en el modulo api_request:
get
post
put
patch
delete
options
head
Para peticiones a aplicaciones externas se debe especificar en cada metodo el parametro is_external=True, por defecto el valor es False, esto previene que el middleware evalue que la respuesta provenga de una fuente confiable.
api_request.get('https://jsonplaceholder.typicode.com/posts/1', is_external=True)
Informacion adicional sobre python requests consultar Aqui
Correr Tests
Para ejecutar los tests de la aplicacion authorized, ejecutar el comando.
python manage.py test authorized
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-api-middleware-0.0.6b1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a044e7ce5fad5e1a6728dcc81878dd43a81a4a4e4e40731ba11bc0118965b0b3 |
|
MD5 | faa0fe0d21d73651ab5d903b80cb969e |
|
BLAKE2b-256 | 78c4e124b421e929afb93b53e7730418122875e438b2ad26b45e4e7f4a3381da |