Easy Tutorial
❮ Home Django Routers ❯

Django Authentication (Auth) Component

The Django Authentication (Auth) component is typically used for user login and registration, to determine if the current user is legitimate, and to redirect to the success or failure login page.

The Django Authentication (Auth) component requires importing the auth module:

# Authentication module
from django.contrib import auth

# Corresponding database
from django.contrib.auth.models import User

The return value is a user object.

Three methods to create a user object:

Parameters:

from django.contrib.auth.models import User 
User.objects.create_user(username='runbooo', password='123')
from django.contrib.auth.models import User 
User.objects.create_superuser(username='runboooo', password='123', email='[email protected]')

To verify a user's username and password, use the authenticate() method, which filters the user object from the auth_user table.

Import required:

from django.contrib import auth

Parameters:

Return value: If the verification is successful, it returns the user object; otherwise, it returns None.

Example

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    username = request.POST.get("username")
    password = request.POST.get("pwd")
    valid_num = request.POST.get("valid_num")
    keep_str = request.session.get("keep_str")
    if keep_str.upper() == valid_num.upper():
        user_obj = auth.authenticate(username=username, password=password)
        print(user_obj.username)

For a successfully verified user, add a session and set request.user to the user object.

Import required:

from django.contrib import auth

Parameters:

Return value: None

Example

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    username = request.POST.get("username")
    password = request.POST.get("pwd")
    valid_num = request.POST.get("valid_num")
    keep_str = request.session.get("keep_str")
    if keep_str.upper() == valid_num.upper():
        user_obj = auth.authenticate(username=username, password=password)
        print(user_obj.username)
        if not user_obj:
            return redirect("/login/")
        else:
auth.login(request, user_obj)
path = request.GET.get("next") or "/index/"
print(path)
return redirect(path)
else:
return redirect("/login/")
❮ Home Django Routers ❯