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.3b1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65dd0178f6d995eac49cfa0867e730a28b049a8f0c063f6d78c5953ad3a23e20 |
|
MD5 | 37a35a6b3816964bef409156320c7658 |
|
BLAKE2b-256 | 79c7a27cd4fc4ba6e3e7ce386d6b881cee23b70b9313d0f010dc090eece60663 |