Welcome to the Django OTP Authentication project! This repository provides a guide and code for setting up OTP authentication in your Django and Django REST Framework application. Follow the steps below to set up and run the code.
Before you get started, make sure you have the following installed:
- Python 3
- Django
- Django REST Framework
- Other required packages specified in
requirements.txt
-
Clone the repository: Start by cloning this repository to your local machine.
git clone <repository_url>
-
Navigate to the project directory: Change into the project directory.
cd <project_directory>
-
Create a virtual environment: This step is optional but recommended for isolating your project's dependencies.
python -m venv venv
-
Activate the virtual environment: Depending on your operating system, use the following commands to activate the virtual environment:
-
On Windows:
venv\Scripts\activate
-
On macOS/Linux:
source venv/bin/activate
-
-
Install dependencies: Install the required packages using
requirements.txt
.pip install -r requirements.txt
-
Configure your settings: Make sure to update
settings.py
with the appropriate configurations for your project, including the SMS API key and other necessary settings. -
Set up the database: Create the OTP model and apply migrations to set up the database.
-
Create migrations:
python manage.py makemigrations
-
Apply migrations:
python manage.py migrate
-
-
Run the development server: Start the Django development server to test the application.
python manage.py runserver
That's it! You should now have the OTP authentication set up and running in your Django application.
models.py
: Defines the OTP model for storing OTPs and associated information.views.py
: ContainsLoginView
andVerifyOTPView
to handle user login and OTP verification.urls.py
: Defines URL routes for the application.
- Make sure to customize the code according to your project's requirements.
- For production use, consider enhancing security and performance.
- Review the code and configurations for potential improvements or optimizations.
Feel free to contribute to this project! You can submit pull requests or open issues with suggestions for improvements.