yeboahd24 / django-otp

Django (DRF) OTP Authentication and Verification

Home Page:https://lnkd.in/dA83F8z4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Django - DRF & OTP verification

This app shows how to handle mobile phone authentication and verification for a user management solution.
Complete guide: Click here

Tools & Services:

  • Django & DRF : for building the APIs
  • Docker & Docker compose: Containerization
  • Celery: For running background task
  • Rabbit MQ: A message broker for celery
  • Flower dashboard: For monitoring celery background tasks
  • PostgreSQL: Relational DB
  • Twilio: SMS notifications

By the end of this tutorial

  • Onboard a user on the system via phone number verification
  • Reset user password via OTP sent to user.
  • Authenticate a user using phone number and password

Running locally

Create a .env file by copying the .env.sample provided and run:

docker compose build && docker compose up

to start the container. As an alternative, run:

docker-compose -f docker-compose.dev.yml up --build

to build and run the container using the dev yaml file. Make sure to externalize the db instance to be used. It can be in another container.

Run tests

Run descriptive tests in the container using:

docker compose exec <docker_container_name> pytest -rP -vv

Access the docs on:

http://localhost:8000/api/v1/doc

Running In a Virtual Env

Create a virtual environment using:

mkvirtualenv <env_name>

Ensure you have installed virtualenv on your system and install dev dependencies using

pip install -r app/requirements/dev.txt

Navigate to app directory and run migrations using:

python manage.py makemigrations

python manage.py migrate

Run the server using:

python manage.py runserver

Access docs:

http://localhost:8000/api/v1/doc

Screenshot


Screenshot


Test Output

Screenshot

About

Django (DRF) OTP Authentication and Verification

https://lnkd.in/dA83F8z4


Languages

Language:Python 95.2%Language:Dockerfile 2.2%Language:HTML 2.1%Language:Shell 0.5%