Basic auth utilities for Django.
Project description
Basic auth utilities for Django.
Requires
Tested under…
Python
2.7
3.6
Django
1.8
1.10
1.11
2.0
Installation
pip install django-basicauth
Usage
from basicauth.decorators import basic_auth_required
@basic_auth_required
def myview(request):
...
or by a middleware.
MIDDLEWARE = (
'basicauth.middleware.BasicAuthMiddleware',
...
)
The name of MIDDLEWARE settings is MIDDLEWARE_CLASSES on Django 1.8.
Basic Auth for specific requestno only
To apply basic auth for specific requests, Use target_test argument.
In the below code, anonymous users will be required Basic Auth Authenticated users can pass it without Basic … header.
from basicauth.decorators import basic_auth_required
@basic_auth_required(
target_test=lambda request: not request.user.is_authenticated
)
def myview(request):
...
target_test accepts typing.Callable[[HttpRequest], bool], and if the callable returns True, Basic Auth will be required.
Applying decorator to CBVs
To apply @basic_auth_requried decorator to Class Based Views, use django.utils.decorators.method_decorator.
from django.utils.decorators import method_decorator
from basicauth.decorators import basic_auth_required
@method_decorator(basic_auth_required, name='dispatch')
class YourView(TemplateView):
template_name = "my-template.html"
Settings
BASICAUTH_USERS (required): Dictionary including keys as username and values as passwords.
BASICAUTH_REALM: realm string, default is “Secure resource”.
BASICAUTH_DISABLE: Disable all of barriers by this library.
Changes
0.5.1 (2018-08-06)
- Added supporting Django2.1
Thanks @rhymes
0.5 (2018-05-09)
- Added supporting Django2.0
Thanks @timheap
0.4.2 (2017-11-27)
- Fixed to avoid timing attacks
Lots of thanks for Hugo Castilho
0.4.1 (2017-10-20)
Added target_test argument for the decorator.
0.4 (2017-09-30)
Supported Python 2.7
Dropped Django1.9
Supported Django 1.10+ style middleware
0.3 (2017-08-28)
Added BASICAUTH_DISABLE setting
- Changed API of basicauthutils.validate_request
Fixed to return True/False
Adding REMOTE_USER by this function
0.2.1 (2017-08-28)
Officially supported Django 1.11, 1.10, 1.9
0.2 (2016-03-31)
Added BasicAuthMiddleware https://github.com/hirokiky/django-basicauth/pull/3
0.1 (2015-04-20)
Initial
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
Built Distribution
Hashes for django_basicauth-0.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 740a176e0bbeed8fd267e165a4373aa51a346258fb87479670dd7f6846f118d1 |
|
MD5 | ed9f734e2e222d4c20cbd67e690e11b6 |
|
BLAKE2b-256 | 818cb5c1ffc035c61057a69e3a941bd0be3dc42d211d97637dfc1d7cb834bb80 |