Skip to main content

A django app for login with email.

Project description

Django Login Email

PyPI Documentation Status Downloads

Allow user to login with only email.

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.
  • 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.0.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.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_login_email-0.5.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2b978f997d4c2032f727dbfccd4b2bcdd2a9a6b2767e6d35e61fc98ddec21c49
MD5 34aa1e6d1c0a14c1acce27e0782c3435
BLAKE2b-256 fe2286e5bd8ece629485a064a9e183f10f598f113f6d5cbfd9bd5cb7362ca371

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_login_email-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28aa5dac729ae5b116751ef67f036146982bc2a8f2726b89f9019d88c34e99d2
MD5 4931902adbbc07e8cad5870300f9568e
BLAKE2b-256 47c3da68ab84f72617fd9caeb0d4dcbc8c75d0691ef5cb7d6e4f755c265f5e9e

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