Skip to main content

django-login-required-middleware

Tests Coverage Status PyPI Version PyPI downloads

django-login-required-middleware provide login to all requests through middleware.

If the website has many views and almost all use LoginRequiredMixin or the login_required decorator, using django-login-required can keep the code of your views more clear and avoids forgetting authentication of view.

Requirements

  • Python 3.8 to 3.10 supported.
  • Django 3.2 to 4.1 supported.

Quick start

  1. Install pip install django-login-required-middleware

  2. Add login_required.middleware.LoginRequiredMiddleware to MIDDLEWARE after django.contrib.auth.middleware.AuthenticationMiddleware

  3. (Optional) To ignore authentication in a view uses decorato @login_not_required for FBV or LoginNotRequiredMixin for CBV:

    from login_required import login_not_required
    
    @login_not_required
    def my_view(request):
        return HttpResponse()
    

    or

    from login_required import LoginNotRequiredMixin
    
    class MyView(LoginNotRequiredMixin, View):
        def get(self, request, *args, **kwargs):
            return HttpResponse()
    
  4. (Optional) Add LOGIN_REQUIRED_IGNORE_PATHS setting. Any requests which match these paths will be ignored. This setting should be a list filled with regex paths (settings.LOGIN_URL always included).

    Example:

    LOGIN_REQUIRED_IGNORE_PATHS = [
        r'/accounts/logout/$',
        r'/accounts/signup/$',
        r'/admin/$',
        r'/about/$'
    ]
    
  5. (Optional) Add LOGIN_REQUIRED_IGNORE_VIEW_NAMES setting. Any requests which match these url name will be ignored. This setting should be a list filled with url names.

    Example:

    LOGIN_REQUIRED_IGNORE_VIEW_NAMES = [
        'home',
        'admin:index',
        'admin:login',
        'namespace:url_name',
    ]
    
  6. (Optional) Add LOGIN_REQUIRED_REDIRECT_FIELD_NAME setting. This will be passed to Django's redirect_to_login(). Default is 'next'.

    Example:

    LOGIN_REQUIRED_REDIRECT_FIELD_NAME = 'next_url'
    

Download files

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

Source Distribution

django-login-required-middleware-0.9.0.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file django-login-required-middleware-0.9.0.tar.gz.

File metadata

File hashes

Hashes for django-login-required-middleware-0.9.0.tar.gz
Algorithm Hash digest
SHA256 847ae9a69fd7a07618ed53192b3c06946af70a0caf6d0f4eb40a8f37593cd970
MD5 63a46b59d80e456c70ef21a9d649d771
BLAKE2b-256 ef51edb065f2f24c46d5c17633080b91b3817d1b890d4f0924c36d338e9e125f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.9.0 This release

1 file

0.8.0

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page