Skip to main content

This is a simple application for Django that allows an anonymous visitor to log in as a user by only visiting a URL.

By default, the URL is only valid once and cannot be used multiple times. Other schemes that involve the number of visit and/or an expiry date can also be created. For example, it is possible to create a log in URL that only valid for 5 visits before next week using this application.

Configuration

  1. Add django-loginurl application into your Django project. Modify your settings.py like the following:

    INSTALLED_APPS = (
        ...
        'loginurl',
        ...
    )
  2. Add the authentication backend of this django-loginurl application to your project’s settings.py.

    AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'loginurl.backends.LoginUrlBackend',
    )

    The first authentication backend is the default and if your project uses the Django’s standard authentication mechanism, you will need that.

    Consult the Django documentation for more information regarding the backend. See http://docs.djangoproject.com/en/dev/topics/auth/#other-authentication-sources

  3. Include the application’s urls.py to your project.

    urlpatterns = patterns('',
        ...
        (r'^loginurl/', include('loginurl.urls')),
        ...
    )

    This will make requests to loginurl/ are handled by django-loginurl. If the configuration is put inside the project’s urls.py, the log in URL will look like the following:

    http://example.com/loginurl/a-secret-key

Scheduled Task

To keep your database clean from expired secret keys, a scheduled task need to be set up. This task should do one of the following.

  1. Call loginurl_cleanup command from the Django’s management script, or

  2. Open a special URL that will trigger the clean up, loginurl/cleanup/. e.g. http://example.com/loginurl/cleanup/

You can use crontab or the web based one to set this up. A daily or weekly task should be enough.

Usage

If your application need to create a one time log in URL, what you need to do is calling loginurl.utils.create with a user object as the parameter. The resulting object is an instance of loginurl.models.Key that has a property called key that contains a unique key for the log in URL.

import loginurl.utils

def create_login_url(user):
    key = loginurl.utils.create(user)
    url = 'http://example.com/loginurl/%s' % key.key

    return url

Acknowledgement

This code has been developed in the context of the research activities of the FET project (Grant agreement no. 231807).

Epiwork: developing the framework for an epidemic forecast infrastructure.

See http://www.epiwork.eu/

Metadata

Release files for django-loginurl 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-loginurl 0.2
File Size Uploaded
django-loginurl-0.2.tar.gz 8.1 kB Details

Release files / django-loginurl-0.2.tar.gz

Download URL django-loginurl-0.2.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
69d2e2246ce7219e6a4717bbfea52b77292d0d2f691d814637ed7c584fc81c96
BLAKE2b-256 checksum
How to use checksums
0b6cb59ac061fbff1c4e38d2261f93b26a74141cbe34fc225366d8df8d603f05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2 This release

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page