Skip to main content

Django middleware to enforce login before accessing certain URL's

Project description

AuthMiddleware

A Django middleware to enforce user login before accessing certain views.

image

image

Setup

You can install django-authmiddleware from pip using

pip install django-authmiddleware

and then add it to your middleware using:

MIDDLEWARE = [
    ...
    'AuthMiddleware.middleware.AuthRequiredMiddleware',
    ...
]

Make sure you add the trailing comma or you might get a ImproperlyConfigured Exception.

Configuration

Configure the middleware's behaviour in your Django project's settings. The middleware expects a AUTH_SETTINGS setting within Django settings to work properly. You must set the following keys within AUTH_SETTINGS:

  • LOGIN_URL
  • DEFAULT_REDIRECT_URL
  • LOCK_URLS
  • REDIRECT_AFTER_LOGIN

LOGIN_URL

A URL name that is used for login in your django project. Defaults to login.

AUTH_SETTINGS = {
    ...
    "LOGIN_URL" : "example"
    ...
}

DEFAULT_REDIRECT_URL

A URL name to which users are redirect if they try to access an invalid URLs. Defaults to None.

When set to None, no redirects take place and error is generated for invalid URLs.

AUTH_SETTINGS = {
    ...
    "DEFAULT_REDIRECT_URL" : "example"
    ...
}

LOCK_URLS

A set of URL names to which access is restricted. Access to these URLs is given only on successful login. Default to empty set {}.

AUTH_SETTINGS = {
    ...
    "LOCK_URLS" : {
        "example-1",
        "example-2",
        "example-3",
        ...
        }
    ...
}

REDIRECT_AFTER_LOGIN

If set to True, user is redirected to original page after successful login. Adds ?next parameter to URL request. Defaults to True.

AUTH_SETTINGS = {
    ...
    "REDIRECT_AFTER_LOGIN" : False,
    ...
}

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_authmiddleware-0.0.4.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

django_authmiddleware-0.0.4-py3-none-any.whl (4.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page