Skip to main content

A django app for login with email.

Project description

Django Login Email

PyPI Documentation Status Downloads

Allow user to login and register with email address.

Install

pip install django-login-email

List of the urls for exmaple project:

  • /home for protected url.
  • /account/login for login.
  • /account/logout for logout.
  • /account/verify for email verify.

Feature

  • The developer could define their own User model.
  • Time-limited of login link.
  • limited of sending email. Using TimeLimt to set minutes.
  • The link could be used for Login once.
  • Register new user.
  • Support multiple user.
  • Change email address.
  • Ban the IP to send mail frequently without login.
  • Enable 2FA.
  • More easier and customizable login link.

Usage

  • add django_login_email to your app settings.py.
INSTALLED_APP = [
    ...,
    'django_login_email',
    ...
]
  • Implement the LoginView, for example, like this:
from django.shortcuts import render
from django.urls import reverse

from django_login_email import email as e
from django_login_email import views as v

# Create your views here.

loginInfo, registerInfo = e.get_info_class("meterhub")


class LoginView(v.EmailLoginView):
  login_info_class = loginInfo
  register_info_class = registerInfo


class VerifyView(v.EmailVerifyView):
  def get_success_url(self):
    return reverse("home")


class LogoutView(v.EmailLogoutView):
  pass
  • set the view in your urls.py.
from django.contrib import admin
from django.urls import path
from <yourapp> import views as v
from django_login_email.views import HomeView

urlpatterns = [
    ...,
    path("account/login", v.LoginView.as_view(), name="login"),
    path("account/verify", v.VerifyView.as_view(), name="verify"),
    path("account/logout", v.LogoutView.as_view(), name="logout"),
    path("", HomeView.as_view(), name="home"),
]

That's all.

Debug the email with docker run -d --name mailhog -p 1025:1025 -p 8025:8025 mailhog/mailhog

Future

  • Academically prove the safety of this method.

Related project

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_login_email-0.5.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_login_email-0.5.1-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file django_login_email-0.5.1.tar.gz.

File metadata

  • Download URL: django_login_email-0.5.1.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for django_login_email-0.5.1.tar.gz
Algorithm Hash digest
SHA256 86ee82028039c94da09c640625a2e6040ddf6296f1864ce993e20cb38f5c83d5
MD5 4786a1e0cde38f3f0b988aaccb0d1499
BLAKE2b-256 a79d664a0d835ca695e78cd6c473c7691152b6f65c0e085bef6bbbf3a2039a47

See more details on using hashes here.

File details

Details for the file django_login_email-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_login_email-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47243d88d35c4426afb3502f08769f536e1631e203fa12625d7af2af7221c57d
MD5 52964a5c3aa00e87dab11ff673f82538
BLAKE2b-256 d784c2e3776415fc6302a151a836cea7946d68e603271942ad8d753b4b979fd0

See more details on using hashes here.

Supported by

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