As we had seen, after a user is registered in the website, he was logged in along with it. Similarly, a logout function can be implemented and the user can be logged out from the website on a button click.
Open the authentication/views.py
file and write the code for logout.
from django.contrib.auth import login, logout
from django.shortcuts import render, redirect
def user_logout(request):
logout(request)
return redirect('home')
This function will logout the current user and redirect him back to the home page. Now again this function needs to be linked with the urls.py
file.
urlpatterns = [
path('register/', views.register, name='register'),
path("logout/", views.user_logout, name='logout'),
]
After this is done, we can display the logout button in the navbar if a user is logged in, else the register button.
For this, we need to edit the base.html
file as follows :
<nav class="bg-gray-800 p-4">
<div class="container mx-auto flex justify-between items-center">
<h1 class="text-3xl font-semibold">Campus Connect</h1>
<ul class="flex space-x-4">
{% if user.is_authenticated %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% else %}
<li><a href="{% url 'register' %}">Register</a></li>
{% endif %}
</ul>
</div>
</nav>
After this, if a logged in user visits the website, he will see the navbar like this. And once he clicks on the logout button, he will be able to see the register button.