Home

Awesome

Django SOTP 🔐

CI PyPI version

Generate a secured base32 one time password to authenticate your user!

Abstract 📑

Django SOTP does just two things, and does them really well.

Installation ⏳

Installing django-sotp is very easy, you'll be using (I'd recommend you use a virtual environment, so you don't break your system) the command pip.

Here's how to go about it:

pip install django-sotp

Next is, adding the installed packages to your project:

INSTALLED_APPS = [
    ...
    'sotp',
]

Since django-sotp depends on a particular package to clear out the OTPs at the elapsed time. We'd have to include another package to our installed apps.

INSTALLED_APPS = [
    ...
    'sotp',
    'django_apscheduler', # added package ;-)
]

Now you've done it, all you need to do is add the time which you want the generated OTPs to expire:

SOTP_TIME_EXPIRATION = 5 # in minutes

Yesss. Next is to make migrations and migrate to your database and you're good to go!

python manage.py makemigrations && python manage.py migrate

Congratulations! You're all set! Let's jump right into how to start using it.

How-To Use 📝

You've got django-sotp installed and ready to use, here's how to start using it!

from sotp.services import GenerateSOTP
otp = GenerateSOTP()
# Generates otp code for the user
otp.generate_otp(user_email=user.email) 

If you are still finding it difficult to use this package, kindly check the example app I made for reference, or create an issue and state the problem you are experiencing!

Shell Example 🥁

If you'd like to test out the package on your django shell..

python manage.py shell
from sotp.services import GenerateSOTP
secured_otp = otp.generate_otp(user_email="test@email.com") # email should exist :-)
{'totp': '5ZCLA7UQVXFP2B5WL5OZG4QDFDJ4GL65', 'OTP': '957092'}