Generalized app for two-step verification
Project description
Generalized app for two-step verification.
Supports Python 3.8-3.12; Django 3.2-5.0.
Installation
Install the library, for instance with pip:
pip install django-verification
Add the library to your INSTALLED_APPS of an exiting project:
INSTALLED_APPS += ['verification']
Add the tables to the existing project:
python manage.py migrate verification
Upgrade
To 0.4.1 (needs Django 1.7+):
python manage.py migrate --fake verification 0001_initial
Demo
Copy the entire django-verification directory somewhere, set up and enter a virtualenv, then provided you are on some Un*x:
make demo
This’ll automatically make a user “admin” with the password “demo”.
The demo should now be running on http://127.0.0.1/
Running make demo again will erase the database from the previous run.
Tests
To run the tests, first install the testing-requirements:
pip install -r requirements/test.txt
then run the tests with:
make test APP=verification
Usage
Create a KeyGroup. KeyGroups hold the config for your Keys, so you might want to make fixtures of them.
from verification.models import KeyGroup
keygroup = KeyGroup(
name='activate_account', # Unique
generator='sha1', # See verification.generators
)
Create a Key on some event, for instance when a user clicks a button:
from verification.models import Key
Key.generate(group=keygroup)
Set Key.send_func to some callable:
from django.core.mail import send_mail
# In this minimal example, the contents of the email is created earlier
def email_key(recipient, content):
subject = "Activate account on FooBlog"
recipient = ''.join(recipient.strip().split())
# Use any kind of messaging-system here
send_mail(subject, content, 'noreply@example.com', [recipient])
key.send_func = email_key
Choose the claim-view, make the content of the email, send it with key.send_key():
from django.core.urlresolvers import reverse
activate_url = reverse('verification-claim-post-url',
kwargs={'key': key, 'group': key.group})
content = "Click on %s to activate your account on FooBlog!" % activate_url
recipient = 'john.oe@example.com'
key.send_key(recipient, content)
Hook the key_claimed-signal in order to do something after the key is claimed:
from django.dispatch import receiver
from verification.signals import key_claimed
@receiver(key_claimed)
def user_created_key_claimed(sender, **kwargs):
claimant = kwargs['claimant']
claimant.is_active = True
claimant.save()
- Version:
1.3.1
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
File details
Details for the file django_verification-1.3.1.tar.gz
.
File metadata
- Download URL: django_verification-1.3.1.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f79d60f262a942ab6d9b5f2621680fe4273b965ccdc5f6cfb83bd3eb9c4a5172 |
|
MD5 | b0d8556b6a3b9361e7f480e5f8e9502e |
|
BLAKE2b-256 | f135af08c0a0cbb9e7a72232a9a449b89540e196bfe28e22208d499704d3b199 |
File details
Details for the file django_verification-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: django_verification-1.3.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bfcf6312ce946e7374833fef389aa140c6bf4afcd8a2898db5ea7f95e27c638 |
|
MD5 | f0566ecd108ac72e0e6aac4fb4d02040 |
|
BLAKE2b-256 | 909413e2f99ad6709ba52c08b9823eea00ee3d196aef5bec0012d7644a0e5098 |