<aside> 🔐

Overview of authentication approaches in the system: quick summary, session vs token comparison, and Django implementation details.

</aside>



Summary


Approach comparison

Criterion Session-based Token-based (JWT)
Server state Session stored on server Stateless on server
Clients Mostly browsers (cookies) Web, mobile, IoT, inter-service
Scalability Needs shared store or sticky sessions Easier horizontal scaling
Revocation Terminate session server-side Short exp, refresh tokens, blacklist
Risks CSRF, cookie XSS Token theft, XSS, client storage
When to choose Traditional web, admin UIs SPAs, mobile apps, public APIs

Session-based authentication in Django

from django.contrib.auth import authenticate, login, logout

def login_view(request):
    if request.method == 'POST':
        user = authenticate(request, username=u, password=p)
        if user:
            login(request, user)
            ...

def logout_view(request):
    logout(request)