A django app for login with email.
Project description
Django Login Email
Allow user to login and register with email address.
NOTICE: We are currently in the development stage. If you use this library, please upgrade to the latest version. Issues are welcome.
You can view the documentation here.
Install
pip install django-login-email
List of the urls for exmaple project:
/homefor protected url./account/loginfor login./account/logoutfor logout./account/verifyfor email verify.
Feature
- The developer could define their own
Usermodel. - 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.
- Support django-templated-email
- Support Django Anymail
- Allow users to change their email address.
- Enable 2FA.
- More easier and customizable login link.
Usage
- add
django_login_emailto your appsettings.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
Settings
- Config
LoginView.tlto disable login attempts check. - View settings/settings.py to config the email server account. As same as django official settings.
- Disable login check:
class YouLoginView(LoginView):
def check_could_send(self, email) -> bool:
# FOR DEBUG
return True
Future
- Academically prove the safety of this method.
Related project
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_login_email-0.6.3.tar.gz.
File metadata
- Download URL: django_login_email-0.6.3.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faafa40d1b2b18e6946111c2e3446b1ce8a9c1b182dd37556f45e350b33c9cc6
|
|
| MD5 |
cbb7d059a383cbcafad3b614bd14c66b
|
|
| BLAKE2b-256 |
31014fcfd0c34aa060cb749f3ce485f50661c53b2abb4fa8ca9a035b4dffe947
|
File details
Details for the file django_login_email-0.6.3-py3-none-any.whl.
File metadata
- Download URL: django_login_email-0.6.3-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da61cc80754f4bf2063834010a5b65e03b2807938bff00aec56d3840d8dc55a4
|
|
| MD5 |
02d6fd3dcd538cbe16b51bf4ce254cb3
|
|
| BLAKE2b-256 |
da28557d255040bd4fd21c90945de00156152e8ab9b939d9996f759ef1f94718
|