How to make Token-Based Auth Rest API using Django rest framework
Hello, Django Developers..!!
Rest API is an important aspect as we see it from a backend point of view. There are many frameworks from where you can make rest API. Django is one of the powerful frameworks to build an API. It provides you a cool library that will help you to build an easy token-based or session-based authentication system. It has many other built-in packages too that will make the developer’s work easy. Let’s build a Django Rest API auth system with all endpoints. Grab your seat and take a cup of coffee and start this Django project.
Set-up of Django Rest Auth API
1. Create a virtual environment and name it “Auth”.
2. Activate the environment.
3. Install Django.
4. Install Django Rest Framework.
You will see something like this
I use Linux so the output is something like this.
5. Start the Django project: django-admin startproject AuthProject
6. Move to the directory “AuthProject”
7. write the command in terminal: python manage.py startapp mainApp
The tree format of this project is:
| — AuthProject
| | — __init__.py
| | — __pycache__
| | | — __init__.cpython-38.pyc
| | ` — settings.cpython-38.pyc
| | — asgi.py
| | — settings.py
| | — urls.py
| ` — wsgi.py
| — mainApp
| | — __init__.py
| | — admin.py
| | — apps.py
| | — migrations
| | ` — __init__.py
| | — models.py
| | — tests.py
| ` — views.py
` — manage.py
8. Install one more package by using this command: pip install django-rest-auth
Code of Django Authentication REST API
Attention all developers seeking to make social connections and establish themselves while earning passive income — look no further! I highly recommend ‘From Code to Connections’, a book that will guide you through the process. Don’t miss out, grab your copy now on Amazon worldwide or Amazon India! You can also go for Gumroad
Now open this project in your favorite text editor.
Update the Installed Apps in settings.py
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#third part apps'rest_framework','rest_framework.authtoken','rest_auth',#Apps'mainApp',]
Now open the urls.py in the “AuthProject” folder. and update the following code accordingly.
from django.contrib import adminfrom django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('rest-auth/', include('rest_auth.urls'))]
We are good to go for now. Open the terminal and migrate the apps.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Something like this:
Now if you want to enable the standard registration process then you have to install some other packages too. So, let’s install it first.
pip install django-rest-auth[with_social]
After the completion of this package. Now, add some third-party apps in Installed apps in settings.py.
And set the SITE_ID = 1.
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#third part apps'rest_framework','rest_framework.authtoken','rest_auth','django.contrib.sites','allauth','allauth.account','rest_auth.registration',#Apps'mainApp',]SITE_ID = 1
For social authentication, you can add the apps too. Because we already installed the desired package.
Change the urls.py too. Add one line of code to it.
urlpatterns = [path('admin/', admin.site.urls),path('rest-auth/', include('rest_auth.urls')),path('rest-auth/registration/',include('rest_auth.registration.urls'))]
Now migrate once again and start the localhost server. The API endpoints are:
1. User Registration
2. User Login
3. User Logout
4. Change Password
5. Password Reset
6. Password Reset Confirmation
Congrats..!! you successfully made a Django Rest API Authentication System. It’s a simple Django project with simple python code. Now you can handle the authentication of Django REST API.