Django Tips & Tricks #7 - Django Auth Plugin For HTTPie
HTTPie is an alternative to curl for interacting with web services from CLI. It provides a simple and intuitive interface and it is handy to send arbitrary HTTP requests while testing/debugging APIs.
When working with web applications that require authentication, using httpie is difficult as authentication mechanism will be different for different applications. httpie has in built support for basic
& digest
authentication.
To authenticate with Django apps, a user needs to make a GET
request to login page. Django sends login form with a CSRF token. User can submit this form with valid credentials and a session will be initiated.
Establish session manually is boring and it gets tedious when working with multiple apps in multiple environments(development, staging, production).
I have written a plugin called httpie-django-auth which automates django authentication. It can be installed with pip
pip install httpie-django-auth
By default, it uses /admin/login
to login. If you need to use some other URL for logging, set HTTPIE_DJANGO_AUTH_URL
environment variable.
export HTTPIE_DJANGO_AUTH_URL='/accounts/login/'
Now you can send authenticated requests to any URL as
http :8000/profile -A=django --auth='username:password'
Need further help with this? Feel free to send a message.