A reusable Django app for requiring a password to access some pages on a site, without requiring users to register an account.
This is a very simple method of authentication, and is intended to provide a low barrier of entry to a site that is not completely public.
Use cases could be previews of sites that users are not supposed to log in to, Stack Overflow-style beta tests, etc.
Using the @password_required
decorator, you can password-protect
individual views.
This module is based on simple session variables, and thus interoperable
with django.contrib.auth
, allowing you to optionally bypass password
protection for all authenticated users, or only for certain groups.
-
Install the app.
Not really within the scope of this document, but if you have pip installed, you could do something like this:pip install -e git+git://github.com/mikl/django-password-required.git#egg=password_required
If you are developing multiple Django sites, you should probably use virtualenv to keep their dependencies separate.
-
Add
password_required
toINSTALLED_APPS
in your Django settings file. -
Set
PASSWORD_REQUIRED_PASSWORD
to the preferred password in your Django settings file. Example:PASSWORD_REQUIRED_PASSWORD = 'mysecretpassword'
-
Add the password required login page to your URLconf. Example:
import password_required.views url(r'^password_required/$', password_required.views.login),
-
Apply the
@password_required
decorator to your views like in this final code example.from password_required.decorators import password_required [...more imports...]
@password_required def my_awesome_view(request): [...view code here...]
This app requires Python 3 and Django 1.5 or later.
This app is BSD-licensed, just like Django.
If you have problems, find a bug or have other feedback, please file an issue on the main Github repo.